【问题标题】:How to match this expression with regex如何将此表达式与正则表达式匹配
【发布时间】:2015-01-16 10:58:01
【问题描述】:

如何匹配如下行:

143abd
559asd
931dgd

这些行总是有三个数字,然后是三个字母

我正在尝试用 Python 编写这个正则表达式。到目前为止,我已经尝试了以下方法:

\b0-9a-z\b

【问题讨论】:

    标签: python regex match


    【解决方案1】:

    我相信以下正则表达式会为您工作:

    import re
    re.findall("^[0-9]{3}[a-zA-Z]{3}$", yourString)
    

    【讨论】:

    • @Noob 在其他答案相同的情况下编辑回复者的帖子是不正确的。
    • 既然你说的是i have tried "\b0-9a-z\b",我们假设你有实际的代码并且正在寻找准确的正则表达式。
    • 对于多行输入,他必须启用多行修饰符。
    【解决方案2】:

    您必须需要放置开始和结束锚点,否则它会进行部分匹配。

    ^\d{3}[a-z]{3}$
    

    如果您想同时允许大写和小写字母,请更改您的正则表达式,如下所示。

    ^\d{3}[a-zA-Z]{3}$
    

    代码:

    >>> import re
    >>> s = """143abd
    ... 559asd
    ... 931dgd
    ... 8765dgb"""
    >>> for i in re.findall(r'(?m)^\d{3}[a-zA-Z]{3}$', s):
    ...     print(i)
    ... 
    143abd
    559asd
    931dgd
    

    【讨论】:

      【解决方案3】:

      上面的字符串将匹配^\d{3}[a-zA-Z]{3}$,您可以编写并验证您自己的正则表达式here。当我需要一个正则表达式时,我会在那里编译并检查它。

      【讨论】:

      • 注意\w 匹配字母、数字或下划线。
      • 谢谢@AvinashRaj。已编辑
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多