怎么写:字符串必须包含子字符串"A"但不能包含"B"或"C"使用正则表达式



使用正则表达式,我需要测试字符串是否包含 A。但字符串不能包含 B 或 C。

什么是正则表达式语法?

您可以使用以下正则表达式:

b[^sCB]*A[^sCB]*b

这将匹配任何包含A但不包含CB的单词

匹配包含bar但不包含carfoo的单词的正则表达式是:

b(?!S*(car|foo))S*bar(?!S*(car|foo))S*b

实际上...以下方法并不太糟糕:

^(?!.*are)(?!.*how).*(hello)

如果您不想要arehow但想要hello.hello周围的括号是可选的,它只"捕获"您想要的位而不是整个字符串。

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

试试这个:

^(?!.*[BC]).*A.*

我认为这是可以完成这项工作的最小正则表达式。

如果要检查整个字符串是否包含 A 而不是 B 或 C,则可以使用否定字符类来匹配 B、C 或换行符。

^[^BCn]*A[^BCn]*$

  • ^在行首断言位置
  • [^BCn]*匹配零次或多次,不是BC或换行
  • A字面意思匹配
  • [^BCn]*匹配零次或多次,不是BC或换行
  • $断言行尾的位置

最新更新