我做了这个正则表达式:
(?<=span class="ope">)?[a-z0-9]+?\.(pl|com|net\.pl|tk|org|org\.pl|eu)|$(?=<\/span>)$
它确实匹配字符串,例如: example.pl
, example12.com
,something.eu
但它也会匹配dontwantthis.com
.
我的问题是如果字符串包含字符串,如何不匹配dontwantthis
字符串?
您可能正在使用循环跟踪您的正则表达式以循环匹配。在这种情况下,检查dontwantthis
子字符串是否存在以及continue
是否存在可能是最简单的。试图在正则表达式中实现它只是自找麻烦。
您似乎正在span
使用正则表达式从元素中提取内容。现在,尽管这不是一个好主意的所有原因......
......保持你的表情。然后,如果您有匹配项,请过滤掉应该被拒绝的匹配条目。
var $match = extractContentFromHtml($html); // use regex here, return false if no match
if ($match && validMatch($match)) {
// do something
}
例如,应该在哪里validMatch(string)
检查该值是否存在于某个数组中。