用于检查字符串中的单词的正则表达式仅用空格分隔,而不用_AND _ / _ OR_ python分隔

时间:2018-08-19 03:22:55

标签: python regex python-2.7

python中的正则表达式,用于检查字符串中的单词是否不被_AND_,_OR_之类的单词隔开,而仅由空格隔开。

下划线的意思是单词AND / OR前后的空格。

例如:

1。)foo AND bar-应该失败

2。)foo AND bar cafe-应该失败,因为它有_AND_

3。)foo AND bar OR cafe foobar baz-失败,因为其中包含_AND_/_OR_

4。)foo bar baz foobar-通过,因为它仅由空格分隔,没有_AND_/_OR_

5。)fooANDbarOR bar-通过,因为它没有被_AND_/_OR_隔开。

我知道如何检查单词是否以_AND_/_OR_->

分隔
\W(:?AND|OR)\W

我知道如何检查单词是否用空格隔开->

\w\s

但是我不知道如何将这两种方式结合起来,以使字符串仅用空格分隔,而不用_AND_/_OR_

1 个答案:

答案 0 :(得分:1)

您可以使用

^(?:[\w ](?! (AND|OR) ))+$

重复的[\w ]确保所有字符均为文字字符或空格,仅此而已。在每个字符之后,对(AND|OR)进行否定的前瞻,以确保这两个都不是独立的单词:

https://regex101.com/r/LyRr5U/2

如果您还想排除独立的单词,请在正则表达式的开头添加正向查找,以确保在字符串中的某些单词字符之间用空格分隔:

^(?=.*\w +\w)(?:[\w ](?! (AND|OR) ))+$