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