Regex re.compile无法在jupyter笔记本上运行

2024-10-02 00:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用jupyter笔记本做一些简单的正则表达式模式,但这两种情况下它总是不返回任何模式,我不明白为什么

  1. 我想搜索3到5位数的图案
    digitRegex = re.compile('r(\d){3,5}')
    digitRegex.search('123456789')

应返回“12345”,但不返回任何内容:(

  1. 同样的问题在这里,当试图找到3个连续的美国电话号码,我想可选:区号和逗号分隔
phoneRegex = re.compile(r'((\d\d\d-)?\d\d\d-\d\d\d\d(,)?){3}')

phoneRegex.search('My numbers are 415-555-1234,555-4242,212-555-000')

应返回3个电话号码,但也不返回任何电话号码:(

谢谢你


Tags: re内容searchmy模式情况电话号码笔记本
1条回答
网友
1楼 · 发布于 2024-10-02 00:20:10

在您的第一个代码中,您将r前缀放在字符串中,因此它将不起作用。(此类前缀用于原始字符串。)

工作代码:

digitRegex = re.compile(r'\d{3,5}')
digitRegex.search('123456789')

在第二个示例中,字符串不匹配,因为它试图获取三个电话号码,而最后一个电话号码以三位数结束,而不是四位数。您需要修复您的regexp或电话号码

  • 与原始正则表达式匹配的有效数字的工作样本

    phoneRegex = re.compile(r'((\d\d\d-)?\d\d\d-\d\d\d\d(,)?){3}')
    phoneRegex.search('My numbers are 415-555-1234,555-4242,212-555-0000')
    
  • 使用与原始编号匹配的编辑正则表达式的工作样本

    phoneRegex = re.compile(r'((\d\d\d-)?\d\d\d-\d\d\d\d?(,)?){3,4}')
    phoneRegex.search('My numbers are 415-555-1234,555-4242,212-555-0000')
    

相关问题 更多 >

    热门问题