【发布时间】:2010-11-20 15:13:11
【问题描述】:
我需要在页面的html源代码中捕获以下标签+内容:
<li class="someClass someClass2">
... some html code ...
</li>
我不太擅长正则表达式,所以我也会感谢包含指向一个好教程的链接的 cmets。我一直在检查http://www.regular-expressions.info/,但我对那里的解释不太满意。
我在上面的网站上发现的 smt 是这样的:
<li\b[^>]*>(.*?)</li>
这匹配所有<li> 标签,这不是我想要的。我试着弄乱它,并测试了这个
<li class="someClass someClass[1-9]{1,1}[0-9]*">(.*?)</li>
不幸的是,这个也不能胜任这项工作。第二个类名的格式为 someClassX,其中 X 来自 {1, 2, ... }(嗯,很明显,它不是一组自然数 :))
我从这个正则表达式中得到的只是“不匹配”。我正在使用 Ubuntu,Kodos 工具。
更郁闷的是这个正则表达式:
<li class="someClass someClass[1-9]{1,1}[0-9]*">
实际上捕捉到了开头的<li> 标签,但仅此而已,就好像它被换行符“分心”了一样。
我仍在谷歌上寻找解决方案,如果找到我会在这里发布,但我也非常感谢一些有用的输入:)
谢谢
【问题讨论】:
-
<li class="someClass someClass[1-9]{1,1}[0-9]*">(.*?)</li>到底有什么问题? (哦,你可以忽略{1,1}) -
需要是正则表达式吗?因为 HTML 不是常规语言,您尝试使用正则表达式解析它可能会失败。
-
@thejh:我会在上面的 Q =) 中添加你的问题的答案
-
@playcat:那请看stackoverflow.com/questions/3650125/…等人。