2010-11-15 88 views
0

我想查找和匹配不包含HTML标签但不包含HTML标签但是包含< br/>和其他所有正常字符([^ <>] +)的字符串。正则表达式以匹配包含<br/>但不包含其他HTML标记的字符串?

所以基本上,这场比赛解散了任何包含'<'或'>'但不是'< br/>'的字符串。

这是我能想出:

preg_match('@[(?:<br/>).][email protected]', $str, $match); 

显然,这是行不通的原因:”我不知道在点放什么。有任何想法吗?

回答

1

为什么不......

@(?:[^<]|<br */>)*@ 

也就是说,任何数量的(一个完整的<br />标签或任何非标签打开字符)。

1

我只是做倒退 - 看看字符串是否包含除<br/>以外的任何<...>标记,如果它包含,则将其解除。所以:

preg_match(/<(?!br)/i, $str, $match); 
if (!$match) we_are_good(); 
相关问题