Regex re.compile无法在jupyter笔记本上工作



我正在使用jupyter笔记本做一些简单的Regex模式,但它在这两种情况下都不返回,我不明白为什么。

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

应返回"12345",但不返回任何值:(

  1. 这里有同样的问题,当试图找到3个连续的美国电话号码时,我想要可选的:区号和逗号分隔
phoneRegex = re.compile(r'((ddd-)?ddd-dddd(,)?){3}')
phoneRegex.search('My numbers are 415-555-1234,555-4242,212-555-000')

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

谢谢。。。

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

工作代码:

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

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

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

    phoneRegex = re.compile(r'((ddd-)?ddd-dddd(,)?){3}')
    phoneRegex.search('My numbers are 415-555-1234,555-4242,212-555-0000')
    
  • 使用编辑的正则表达式匹配原始数字的工作示例:

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

最新更新