我有一些由空格分隔的任意长度代码组成的文本,例如:
AA *X IJ XYZ 7F *A OF *B 3C
作为第一步,我想提取所有2个字符的代码,其中第一个字符是星号,第二个字符是3个不同的替代字符之一(假设它们是A,B& C) )。因此,在此步骤之后,在此示例中,我将使用我的匹配列表*A
和*B
。
我尝试使用以下正则表达式
\b(\*[ABC])\b
...但当然,这不起作用,因为星号不被视为单词的一部分。我怎样才能以可读,可维护的方式做到这一点?
答案 0 :(得分:1)
使用正向lookbehind,并匹配字符串的开头或空格字符:
(<=^| )(\*[ABC])\b
在此处查看:[{3}}
如果您关心的只是捕获组,则不需要lookbehind。只需将其从捕获组中删除:
(?:^| )(\*[ABC])\b