0

我做了这个正则表达式:

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

它确实匹配字符串,例如: example.pl, example12.comsomething.eu但它也会匹配dontwantthis.com.

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

4

2 回答 2

3

您可能正在使用循环跟踪您的正则表达式以循环匹配。在这种情况下,检查dontwantthis子字符串是否存在以及continue是否存在可能是最简单的。试图在正则表达式中实现它只是自找麻烦。

于 2012-12-30T04:44:37.143 回答
1

您似乎正在span使用正则表达式从元素中提取内容。现在,尽管这不是一个好主意的所有原因......

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

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

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

于 2012-12-30T04:50:11.053 回答