使用preg_replace的正则表达式中的特殊字符问题

时间:2018-11-08 14:16:38

标签: php regex regex-negation

我对正则表达式有疑问,正试图找出我搜索的短语是否在<hx>标记内

这是示例: https://regex101.com/r/xAlJJc/3

如您所见,示例中完全匹配1个,这很好

问题在于,您在此<h1>test string</h1>正则表达式中添加点,逗号或其他字符的那一刻变得疯狂,并显示了2个匹配项

是否有人知道如何确保这一点: https://regex101.com/r/xAlJJc/4

找不到“测试字符串”的任何匹配项吗?

2 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则可以尝试一下:

^<\w*>(test string)<\/\w*>

答案 1 :(得分:0)

在我的情况下,解决方案是使用此正则表达式:

(Test)(?![^>]*?[^<]*?<\/a>)(?![^>]*?[^<]*?<\/button>)(?![^>]*?[^<]*?<\/h[1-6]>)

谢谢你们的努力:)