0

对我来说似乎是一项微不足道的任务,但在过去的一个小时内未能完成。

正则表达式应匹配不包含短语“排除短语”的每个单词。

例如:
匹配:
'ok
string''some phrasOk because thre is no e in phrase'
等...

不匹配:
“排除短语”
“某些前缀排除短语”
“排除短语某些后缀”
等...

4

3 回答 3

2

如果你有一句话:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。

查找所有单词的正则表达式,但不是 'sit' 和 'adipiscing' 将是:

\b(?(?=坐|adipiscing)^\w+|\w+)\b

在 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);
于 2012-06-26T12:07:59.397 回答
1

那将是一个正则表达式^((?!phrase).)*$

于 2012-06-26T12:04:16.153 回答
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
于 2012-06-26T12:04:57.620 回答