连续大写字母正则表达式

3 python regex python-3.x

我正在尝试使用正则表达式在字符串中查找三个连续的大写字母。

我试过使用:

\b([A-Z]){3}\b  
Run Code Online (Sandbox Code Playgroud)

作为我的正则表达式在一定程度上有效。

但是,这只会自行返回字符串。我还希望它找到嵌套在字符串中的三个连续的大写字母。即thisISAtest

Jer*_*rry 5

我想知道为什么您的正则表达式中有这些单词边界\b?单词边界确保单词字符后跟非单词字符(反之亦然)。这些就是阻止thisISAtest匹配的原因。删除它们,您应该会很好!

([A-Z]){3}
Run Code Online (Sandbox Code Playgroud)

另一件事是,我不确定您为什么使用捕获组。您要提取三个大写字母的最后一个字母吗?如果没有,您可以简单地使用:

[A-Z]{3}
Run Code Online (Sandbox Code Playgroud)

您不一定需要使用组来使用确定的量词。:)

编辑:为了防止更多连续的大写字母,您可以使用否定环顾四周:

(?<![A-Z])[A-Z]{3}(?![A-Z])
Run Code Online (Sandbox Code Playgroud)

(?<![A-Z]) 确保前面没有大写字母;

(?![A-Z]) 确保没有后面的大写字母。