我找不到如何在我的正则表达式中排除字符串:
前:
<div\s[^>]+>
会在结束<div
>
和每个字符
现在我想找到<div...>
然后everything but a </div>
然后找</div>
。类似的东西:
<div\s[^>]+>[^(</div>)]*</div>
问题是[^abc]
不包括a或b或c。如何排除“abc”字符串?
答案 0 :(得分:3)
这就是negative lookahead assertions的用途:
<div\s[^>]+>(?:(?!</div>).)*</div>
<强>解释强>
(?: # Match...
(?!</div>) # unless we're right before a </div>
. # any character.
)* # Repeat as needed
您可能希望将斜杠设为可选((?!</?div>)
);否则你会绊倒<div> foo <div> bar </div> baz </div>
中的嵌套标签。
答案 1 :(得分:1)
使用非贪婪的正则表达式
<div\s[^>]+>(.*?)</div>