对我来说似乎是一项微不足道的任务,但过去一小时内未能实现这一目标。
正则表达式应匹配不包含短语'exclude phrase'的每个单词。
例如:
比赛:
'ok string'
'有些phrasOk,因为在短语中没有''
等...
不匹配:
'排除短语'
'有些前缀排除短语'
'排除短语一些后缀'
等...
答案 0 :(得分:2)
如果您有短语:
Lorem ipsum dolor sit amet,consectetur adipiscing elit。
找到所有单词的正则表达式,但不是'sit'和'adipiscing'将是:
\ B((=坐|?adipiscing)^ \ W + | \ W +)\ B'/ P>
在php中:
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$matches = array();
preg_match_all("/\b(?(?=sit|adipiscing)^\w+|\w+)\b/i", $text,$matches);
var_dump($matches);
答案 1 :(得分:1)
这将是一个正则表达式^((?!phrase).)*$
答案 2 :(得分:1)
最简单的解决方法:正则表达式匹配(平凡)然后反向条件。
python中的示例:
>>> not(re.search ('exclude phrase','Some prefix exclude phrase'))
False
>>> not(re.search ('exclude phrase','exclude phrase some suffix'))
False
>>> not(re.search ('exclude phrase','ok string'))
True