我正在尝试创建一个正则表达式,以检查标签是否在文本中,但是有几个标签(以成千上万个,不要问我为什么,SEO专家告诉我的客户它很好),并以括号结尾。
正则表达式适用于普通标签,但是由于匹配必须精确,因此括号上的普通字符会失败,因此我被迫使用单词边界。有没有办法允许这种情况?
这是我使用的原始正则表达式:
https://regex101.com/r/wN9jO8/1
这是我尝试过的方法(是的,我对正则表达式不满意,但是我尝试使用谷歌搜索和感冒未找到任何真正有用的东西):
https://regex101.com/r/wN9jO8/2
我也尝试过修改单词边界,但是它不能正常工作(总是在标签前后匹配一个字符串)。
基本上,对于标签text (jadad)
:
lipsum is a dummy text (jadad) alsdasldk. // match
lipsum is a dummy text (jadad). // match
lipsum is a dummy text (jadad) // match
lipsum is a dummy (text (jadad)) // match
lipsum is a dummy text (jadad // should not match
lipsum is a dummy text jadad) // should not match
lipsum is a dummy text (jadad)asd // should not match
主要问题是,对于带括号的标签,如果没有括号,它必须工作得很好,理想情况下,可轻松编辑以支持标签中的更多怪异字符([或>或以。或?或!结尾的标签)。
我现在真的迷路了。如果您需要更多信息,请发表评论,我会尝试添加它。
感谢帮助。
您可以使用负数前瞻(?!\w)
(表示下一个职位没有单词char)。请注意,您不能使用\b
as\b
无法断言,之后将)
其视为非单词字符:
\btext \(jadad\)(?!\w)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句