【问题标题】:Consecutive uppercase letters regex连续大写字母正则表达式
【发布时间】:2013-08-18 09:43:04
【问题描述】:

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

我尝试过使用:

\b([A-Z]){3}\b  

作为我的正则表达式,它在一定程度上起作用。

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

【问题讨论】:

    标签: python regex python-3.x


    【解决方案1】:

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

    ([A-Z]){3}
    

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

    [A-Z]{3}
    

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

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

    (?<![A-Z])[A-Z]{3}(?![A-Z])
    

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

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

    【讨论】:

    • 感谢您的帮助,从该正则表达式的外观来看,它会将 TEST 视为匹配,不是吗?我只是在没有任何相邻大写的情况下只有 3 个大写字母。顺便说一句,正则表达式的新手
    • @user1411838 哦,好的,我会编辑我的正则表达式并告诉你:)
    • @user1411838 编辑了我的答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多