簡體   English   中英

用於檢查字符串中的單詞的正則表達式僅用空格分隔,而不用_AND _ / _ OR_ python分隔

[英]Regex to check words in string are separated only by spaces and not by _AND_/_OR_ python

python中的正則表達式,用於檢查字符串中的單詞是否_AND_,_OR_類的單詞_AND_,_OR_而僅由空格分隔。

下划線的含義是AND / OR字詞前后的空格。

例如:

1.) foo AND bar應該失敗

2.) foo AND bar cafe _AND_應該失敗,因為它有_AND_

3.) foo AND bar OR cafe foobar baz _AND_/_OR_失敗,因為其中包含_AND_/_OR_

4.) foo bar baz foobar _AND_/_OR_通過,因為它僅由空格分隔,沒有_AND_/_OR_

5.) fooANDbarOR bar傳遞,因為它不由_AND_/_OR_

我知道如何檢查單詞是否由_AND_/_OR_ ->

\W(:?AND|OR)\W

我知道如何檢查單詞是否用空格隔開->

\w\s

但是我不知道如何將這兩種東西結合起來,使得字符串僅用空格分隔,而不用_AND_/_OR_

您可以使用

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

重復的[\\w ]可確保所有字符均為文字字符或空格,僅此而已。 在每個字符之后,對(AND|OR)進行否定的前瞻,以確保這兩個都不是獨立的單詞:

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

如果您還想排除獨立的單詞,請在正則表達式的開頭添加正向前行,以確保在字符串中的某些單詞字符之間用空格分隔:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM