我想查找和匹配不包含HTML标记的字符串,但是< br />和所有其他正常字符([^<>] +)。
基本上,这个匹配解除了包含'<'的任何字符串或'>'但不是'< br />'。
这是我能想到的:
preg_match('@[(?:<br/>).]+@sU', $str, $match);
显然它不起作用'因为我不知道该把什么放在点上。有什么想法吗?
答案 0 :(得分:1)
我会向后执行 - 查看字符串是否包含除<...>
以外的任何<br/>
标记,如果有,则将其解除。所以:
preg_match(/<(?!br)/i, $str, $match);
if (!$match) we_are_good();
答案 1 :(得分:1)
为什么不......
@(?:[^<]|<br */>)*@
即,任意数量(完整的<br />
标记或任何非标记开放字符)。