1

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

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

作为第一步,我想提取所有 2 个字符的代码,其中第一个字符是星号,第二个字符是 3 种不同的选择之一(假设它们是 A、B 和 C)。所以在这一步之后,在这个例子中,我的匹配列表*A*B.

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

\b(\*[ABC])\b

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

4

1 回答 1

1

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

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

在此处查看实际操作:http ://regex101.com/r/wS5qS2


如果您只关心捕获组,则不需要后视。只需将其保留在您的捕获组之外:

(?:^| )(\*[ABC])\b
于 2013-01-31T00:55:27.047 回答