【问题标题】:getting letter followed by consecutive digits regex得到字母后跟连续数字正则表达式
【发布时间】:2019-09-18 04:28:58
【问题描述】:
import re
s = 'A1902022 N18-2181 A1234567 1-22-2001 A928882190 '

我有以下字符串 s,我想得到字母 A 后跟 7 位数字。我已经尝试了以下

reg = r'[()\d]{7,}'
r1 = re.findall(reg,s)

这给了我

['1902022', '1234567', '928882190']

我想要以下输出

['A1902022', 'A1234567']

如何调整

 reg = r'[()\d]{7,}'

要得到我想要的输出?

【问题讨论】:

    标签: regex python-3.x string text


    【解决方案1】:

    最初匹配A。因为字符串中没有任何括号,所以在字符集中包含() 似乎没有用 - 然后,只需将 7 位数字与 \d{7} 匹配,并确保后面没有另一个数字:

    A\d{7}(?!\d)
    

    https://regex101.com/r/WZiNjk/1

    【讨论】:

      【解决方案2】:

      A 的每一端使用单词边界,然后是 7 位数字:

      \bA\d{7}\b
      

      live demo

      单词边界停止输入比如这些匹配:

      BA1234567
      A12346778
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多