我找不到如何在我的正则表达式中排除字符串:
前任 :
<div\s[^>]+>
将在结束前找到一个<div
和每个字符>
现在我想找到<div...>
then everything but a </div>
then a </div>
。就像是 :
<div\s[^>]+>[^(</div>)]*</div>
问题是[^abc]
排除 a 或 b 或 c。如何排除“abc”字符串?
我找不到如何在我的正则表达式中排除字符串:
前任 :
<div\s[^>]+>
将在结束前找到一个<div
和每个字符>
现在我想找到<div...>
then everything but a </div>
then a </div>
。就像是 :
<div\s[^>]+>[^(</div>)]*</div>
问题是[^abc]
排除 a 或 b 或 c。如何排除“abc”字符串?
这就是负面的前瞻性断言的用途:
<div\s[^>]+>(?:(?!</div>).)*</div>
解释:
(?: # Match...
(?!</div>) # unless we're right before a </div>
. # any character.
)* # Repeat as needed
您可能希望将斜杠设为可选 ( (?!</?div>)
);否则你会被嵌套标签绊倒,比如 in <div> foo <div> bar </div> baz </div>
。
使用非贪婪的正则表达式是可能的
<div\s[^>]+>(.*?)</div>