我想检查一个字符串是否在括号内包含4个字母/数字。例如:(A1B2),(1111),(BBBB)但不是某个代码(WXYZ)。
我知道|是" OR"操作员,我可以找到" AND"操作
我有两个条件。
到目前为止,我有第一个正则表达式:
[(]\w{4}[)]
我不知道如何验证这是否得到尊重+我的第二个条件是不是(WXYZ)。
我需要一些看起来像的东西:
[(]\w{4}[)] AND not (WXYZ)
我尝试使用^运算符多次。
答案 0 :(得分:1)
您可以使用否定前瞻:
\((?!WXYZ)\w{4}\)
(?!WXYZ)
基本上意味着下一个字符不能成为现实,但它不会向前移动位置。
\(
是一个转义括号 - 它类似于[(]
,因为它会将(
视为一个字符,而不是一个特殊的元字符......但斜线是通常的做法。
这个和另一个答案中的?
实际上是一个指令的一部分(它在一个括号后面):在我的情况下?!
该组的负面预测...在@ herbae&# 39;一个是积极的前瞻(?=
)。 "通常" ?
只是意味着可选......
答案 1 :(得分:0)
试试这个:
\(((?=[^WXYZ])\w{4})\)
" \"是两个括号的转义字符。 "?="是一个积极的前瞻。我在第一个括号后面说'#34;没有找到任何WXYZ序列"。