我已经制作了这个正则表达式:
(?<=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
字符串,该如何不匹配?
答案 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)
应检查某个数组中是否存在该值,例如。