有没有一种简洁的方法可以将一个特定的大写字母(以及字符前后不同数量的空格)精确匹配三次



我尝试匹配特定字符三次。角色之间会有空格。问题是我不知道我需要事先匹配的角色。

例如:

D       D                D     Would be a match
D       D                B     Would not be a match (because of the B)
A        A             A       Would be a match
D       D      j        D      Would not be a match (because of the j)

我的想法是,我可以让第一场比赛决定第二场和第三场比赛,但我不知道如何做到这一点。

Regex101-匹配三个Bs

(?:s*)([B]){1}(?:s*)([1])(?:s*)([1]){1}   

最终,我想在R程序中使用正则表达式。

您可以使用一个字符类和一个具有反向引用1的单个捕获组来匹配一个选项卡或空间的1次以上,而无需在字符类中使用它。

b([A-Z])[ t]+1[ t]+1b
  • b字边界
  • ([A-Z])捕获组1匹配大写字符A-Z
  • [ t]+1匹配1+次空格或制表符和对组1的反向引用
  • [ t]+1同上
  • b字边界

Regex演示

您也可以使用s代替空格或制表符,但也可以匹配换行