【发布时间】:2014-02-13 01:11:54
【问题描述】:
如何使用正则表达式查找所有“猫”?
“有些人在遇到问题时会想“我知道,我会用 正则表达式。“现在他们有两个问题!” (c) 杰米·扎温斯基
请帮助我通过单个查询找到 div 中的所有“猫”:)
cat
<div>let's try to find this cat and this cat</div>
cat
<div>let's try to find this cat and this cat</div>
cat
我已经这样做了,但它不起作用:
(?<=<div>)((?!<\/div>)(cat|(?:.|\n))+)(?=<\/div>)
我在使用 Sublime Text 时发现了这个问题。我们只能进行一次查询。可能吗?如果您可以使用任何编程语言(Python、PHP、JavaScript)回答,我也会很高兴。谢谢!
我可以找到最后一只猫或第一只猫,但需要找到坐在某些 DIV 中的所有猫。我想其他语言的东西可能有可能,但我只想要一个查询(一行)——这对我来说最有趣。如果不可能,对不起我的帖子:)
感谢@revo!非常好的变体,适用于 Sublime Text。 让我为这个主题添加第二个问题...... Сan 我们对“猫”类的 div 这样做,但对“狗”类的 div 不这样做?
cat
<div class="cats">black cat, white cat</div>
cat
<div class="dogs">black cat, white cat</div>
cat
【问题讨论】:
-
你真的只想要“猫”这个词还是整个标签?
-
olgash,是的,所有的猫都隐藏在 div 中 :)
-
查找“cat”出现的最简单的正则表达式是……
cat。除非您指定其他要求,否则没有理由让它变得更复杂。 -
在解析任何 XML 文档(HTML 或其他)时,正则表达式通常是不适合这项工作的工具。几乎没有办法编写一个匹配
cats 和<div>s 的所有可能排列的正则表达式(例如,@casimir-et-hippolyte 下面的答案将无法通过此测试:<div><div></div>cat</div>)。
标签: javascript python html regex sublimetext2