使用正则表达式,我需要测试字符串是否包含 A。但字符串不能包含 B 或 C。
什么是正则表达式语法?
您可以使用以下正则表达式:
b[^sCB]*A[^sCB]*b
这将匹配任何包含A
但不包含C
或B
的单词
匹配包含bar
但不包含car
或foo
的单词的正则表达式是:
b(?!S*(car|foo))S*bar(?!S*(car|foo))S*b
实际上...以下方法并不太糟糕:
^(?!.*are)(?!.*how).*(hello)
如果您不想要are
或how
但想要hello
.hello
周围的括号是可选的,它只"捕获"您想要的位而不是整个字符串。
https://regex101.com/r/FiO9QD/2
试试这个:
^(?!.*[BC]).*A.*
我认为这是可以完成这项工作的最小正则表达式。
如果要检查整个字符串是否包含 A 而不是 B 或 C,则可以使用否定字符类来匹配 B、C 或换行符。
^[^BCn]*A[^BCn]*$
详
^
在行首断言位置[^BCn]*
匹配零次或多次,不是B
或C
或换行
符A
字面意思匹配[^BCn]*
匹配零次或多次,不是B
或C
或换行
符$
断言行尾的位置