如何在正则表达式中否定一组字符?[^</a>](当你发现</a>停止匹配)


How do I negate a set of characters together in a Regular Expression? Ex: [^</a>] (When you find </a> stop matching)

如何在正则表达式中否定一组字符?例:[^](当你发现停止匹配)当我这样做时,当它在文本

中找到"a"时,代码停止。

如何对一组字符求反

这是表达式:

$string = "<a href='asdasd'>lalalala</a>";
preg_match('/<a href=.*?>([^<'/a>]+)/',$string,$res);

你可以使用反向向前看:

.(?!</a>)

将匹配任何不跟在</a>后面的字符。

因此,要匹配不包含</a>的整个字符串:
^(.(?!</a>))*$

作为断言的更简单的替代方法,可以只匹配文本内容,在标记分隔符处停止:

 preg_match('/<a href=.*?>([^<>]+)/', $string, $res);