我正在尝试使用正则表达式在字符串中查找三个连续的大写字母。
我已经尝试使用以下代码:
\b([A-Z]){3}\b
我的正则表达式可以工作,但只能返回单个字符串。我还想在字符串中查找三个连续的大写字母,例如
thisISAtest
。我正在尝试使用正则表达式在字符串中查找三个连续的大写字母。
我已经尝试使用以下代码:
\b([A-Z]){3}\b
thisISAtest
。我想知道为什么你的正则表达式中有\b字符边界?字符边界可以确保单词字符后面跟着的是非单词字符(反之亦然)。这就是防止匹配thisISAtest
的原因。如果删除它们,你的正则表达式应该就能正常工作了!
([A-Z]){3}
另一件事是我不确定你为什么要使用捕获组。你是在提取三个大写字母的最后一个字母吗?如果不是,你可以简单地使用:
[A-Z]{3}
您不一定需要使用组来使用明确的量词。 :)
编辑:为了防止连续的大写字母,您可以利用负向预查:
(?<![A-Z])[A-Z]{3}(?![A-Z])
(?<![A-Z])
确保前面没有大写字母;
(?![A-Z])
确保后面没有大写字母。