带有异常的字符串的正则表达式

时间:2014-11-28 19:04:48

标签: regex vba

我想检查一个字符串是否在括号内包含4个字母/数字。例如:(A1B2),(1111),(BBBB)但不是某个代码(WXYZ)。

我知道|是" OR"操作员,我可以找到" AND"操作

我有两个条件。

到目前为止,我有第一个正则表达式:

[(]\w{4}[)]

我不知道如何验证这是否得到尊重+我的第二个条件是不是(WXYZ)。

我需要一些看起来像的东西:

[(]\w{4}[)] AND not (WXYZ)

我尝试使用^运算符多次。

2 个答案:

答案 0 :(得分:1)

您可以使用否定前瞻:

\((?!WXYZ)\w{4}\)

(?!WXYZ)基本上意味着下一个字符不能成为现实,但它不会向前移动位置。

\(是一个转义括号 - 它类似于[(],因为它会将(视为一个字符,而不是一个特殊的元字符......但斜线是通常的做法。

这个和另一个答案中的?实际上是一个指令的一部分(它在一个括号后面):在我的情况下?!该组的负面预测...在@ herbae&# 39;一个是积极的前瞻(?=)。 "通常" ?只是意味着可选......

祝你好运。坚持下去 - regexp是您可以学习的最强大的工具之一! (一个很好的资源是Regular-Expressions.info Turorial

答案 1 :(得分:0)

试试这个:

\(((?=[^WXYZ])\w{4})\)

" \"是两个括号的转义字符。 "?="是一个积极的前瞻。我在第一个括号后面说'#34;没有找到任何WXYZ序列"。