2024-10-01 13:36:44 发布
网友
我尝试使用正则表达式在一个字符串中查找三个连续的大写字母。在
我试过使用:
\b([A-Z]){3}\b
作为我的正则表达式在一定程度上起作用。在
但是,这只返回字符串本身。我还希望它能找到嵌套在一个字符串中的三个连续的大写字母。i、 ethisISAtest。在
thisISAtest
我想知道您的regexp \b中为什么有这些单词边界?单词边界确保单词字符后跟非单词字符(反之亦然)。这些就是阻止thisISAtest匹配的原因。把它们取下来,你应该表现得很好!在
\b
([A-Z]){3}
另一件事是我不知道你为什么要用一个捕捉组。你在提取三个大写字母中的最后一个字母吗?如果没有,您可以简单地使用:
你不一定需要小组来使用明确的量词。:)
编辑:为了避免更多连续的大写字母,您可以使用否定的lookaround:
(?<![A-Z])[A-Z]{3}(?![A-Z])
(?<![A-Z])确保前面没有大写字母
(?<![A-Z])
(?![A-Z])确保后面没有大写字母。在
(?![A-Z])
我想知道您的regexp
\b
中为什么有这些单词边界?单词边界确保单词字符后跟非单词字符(反之亦然)。这些就是阻止thisISAtest
匹配的原因。把它们取下来,你应该表现得很好!在另一件事是我不知道你为什么要用一个捕捉组。你在提取三个大写字母中的最后一个字母吗?如果没有,您可以简单地使用:
^{pr2}$你不一定需要小组来使用明确的量词。:)
编辑:为了避免更多连续的大写字母,您可以使用否定的lookaround:
(?<![A-Z])
确保前面没有大写字母(?![A-Z])
确保后面没有大写字母。在相关问题 更多 >
编程相关推荐