Perl 正则表达式模式匹配

发布于 2024-10-31 17:39:24 字数 615 浏览 4 评论 0原文

我想使用名为 source.htmlsource.txt: 的源文件中的正则表达式

<OPTION value=5>&nbsp;&nbsp;5 - Course Alpha (3)</OPTION> <OPTION value=6>&nbsp;&nbsp;6 - Course Beta (3)</OPTION>

来获取:

5 - Course Alpha (3)
6 - Course Beta (3)

我的意思是我必须找到一个模式:

<OPTION v

所以

 finding first number after it 

获取所有内容,直到我请参阅:

</OPTION>

如何使用正则表达式通过 Perl 实现它?

PS:它应该从文件中读取内容并将输出写入文件。

I want to use regex from a source file named source.html or source.txt:

<OPTION value=5>  5 - Course Alpha (3)</OPTION> <OPTION value=6>  6 - Course Beta (3)</OPTION>

to get:

5 - Course Alpha (3)
6 - Course Beta (3)

I mean I have to find a pattern:

<OPTION v

and

 finding first number after it 

so getting everything till I see:

</OPTION>

How can I implement it with Perl using Regex?

PS: It should read the content from a file and write output to a file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一杆小烟枪 2024-11-07 17:39:24

您不想使用正则表达式,您想使用 HTML 解析器。这是一个 好关于该主题的文章解释了为什么正则表达式很脆弱以及如何使用HTML::树构建器

还有关于从 HTML 文档中提取数据的一小堆类似的问题和答案

You do not want to use a regex, you want to use an HTML parser. Here's a good article on the subject which explains why regexes are fragile and how to use HTML::TreeBuilder.

There's also a small pile of similar questions and answers about extracting data from HTML documents.

世界如花海般美丽 2024-11-07 17:39:24
perl -lwe '$_="<OPTION value=5>  5 - Course Alpha (3)</OPTION> <OPTION value=6>  6 - Course Beta (3)</OPTION>"; s/\ //g; print $1 while /<OPTION [^>]*>([^<]+)/g'
perl -lwe '$_="<OPTION value=5>  5 - Course Alpha (3)</OPTION> <OPTION value=6>  6 - Course Beta (3)</OPTION>"; s/\ //g; print $1 while /<OPTION [^>]*>([^<]+)/g'
拥醉 2024-11-07 17:39:24

怎么样?

/<OPTION v.*?>.*?(\d.+?)<\/OPTION>/

http://regexr.com?2thm8

您将在第一个捕获组中找到字符串。

What about

/<OPTION v.*?>.*?(\d.+?)<\/OPTION>/

http://regexr.com?2thm8

There you will find your strings in the first capturing group.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文