使用*作为“单词字符”的正则表达式

时间:2013-01-31 00:53:26

标签: .net regex

我有一些由空格分隔的任意长度代码组成的文本,例如:

AA *X IJ XYZ 7F *A OF *B 3C

作为第一步,我想提取所有2个字符的代码,其中第一个字符是星号,第二个字符是3个不同的替代字符之一(假设它们是A,B& C) )。因此,在此步骤之后,在此示例中,我将使用我的匹配列表*A*B

我尝试使用以下正则表达式

\b(\*[ABC])\b

...但当然,这不起作用,因为星号不被视为单词的一部分。我怎样才能以可读,可维护的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

使用正向lookbehind,并匹配字符串的开头或空格字符:

(<=^| )(\*[ABC])\b

在此处查看:[{3}}


如果您关心的只是捕获组,则不需要lookbehind。只需将其从捕获组中删除:

(?:^| )(\*[ABC])\b