如果字符串包含特定文本,则不匹配

时间:2012-12-30 04:33:35

标签: php regex string

我已经制作了这个正则表达式:

(?<=span class="ope">)?[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$

它符合以下字符串:example.plexample12.comsomething.eu但它也会匹配dontwantthis.com

我的问题是,如果字符串包含dontwantthis字符串,该如何不匹配?

2 个答案:

答案 0 :(得分:3)

你可能正在跟着你的正则表达式循环来循环匹配。在这种情况下,最简单的方法是检查是否存在dontwantthis子字符串和continue(如果存在)。试图在正则表达式中实现它只是在寻找麻烦。

答案 1 :(得分:1)

您似乎正在使用正则表达式从span元素中提取内容。现在,尽管all reasons为什么this is not这样一个好主意......

...保持你的表达。然后,如果您有匹配项,请过滤掉应该拒绝的匹配条目。

var $match = extractContentFromHtml($html);  // use regex here, return false if no match
if ($match && validMatch($match)) {
    // do something
}

其中validMatch(string)应检查某个数组中是否存在该值,例如。