.net 带*的正则表达式;字字符“;

.net 带*的正则表达式;字字符“;,.net,regex,.net,Regex,我有一些由空格分隔的任意长度代码组成的文本,例如: AA *X IJ XYZ 7F *A OF *B 3C 作为第一步,我想提取2个字符的所有代码,其中第一个字符是星号,第二个字符是3个不同的备选字符之一(假设它们是a、B和C)。因此,在这个步骤之后,在这个示例中,我将把匹配项*A和*B作为我的列表 我尝试使用下面的正则表达式 \b(\*[ABC])\b …但当然,这不起作用,因为星号不被认为是单词的一部分。如何以可读、可维护的方式执行此操作?使用正向查找,并匹配字符串的开头或空格字符: (

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

AA *X IJ XYZ 7F *A OF *B 3C
作为第一步,我想提取2个字符的所有代码,其中第一个字符是星号,第二个字符是3个不同的备选字符之一(假设它们是a、B和C)。因此,在这个步骤之后,在这个示例中,我将把匹配项
*A
*B
作为我的列表

我尝试使用下面的正则表达式

\b(\*[ABC])\b

…但当然,这不起作用,因为星号不被认为是单词的一部分。如何以可读、可维护的方式执行此操作?

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

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

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

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

我很高兴你已经有了答案,但为了我的缘故,你能详细说明一下这个问题吗?因为当
\s(\*[ABC])\s
工作正常时,我看不出有必要在这里匹配
\b
。@ByteBlast字符串的开头或结尾不匹配…我很高兴你已经有了答案,但为了我的缘故,你能详细说明这个问题吗?因为当
\s(\*[ABC])\s
工作正常时,我看不到需要在这里匹配
\b
。@ByteBlast在字符串的开头或结尾不匹配。。。。