我正在尝试运行下面的行,并期望Python返回['402-292-2345'],但是我从Shell得到的只是'[]',就像下面的最后一行一样。我做错什么了?(注意:我编辑了下面的原始代码以反映缺少的破折号。)
后期编辑:出现了另外一个问题,我认为这与使用IDLE的文本编辑器和从那里运行Shell有关。 在您的几句评论之后,我直接在Shell中运行下面的行,并返回下面的#2
从文本编辑器运行:
phoneRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
resume = '''IM A SAMPLE 1234 North 55 Street Bellevue, Nebraska 68005 402-292-2345 iasample@aol.com PROFESSIONAL REFERENCES Name Attaboy Company'''
phoneRegex.findall(resume)
[]
然后#2我直接在Shell中运行:
phoneRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
resume = '''IM A SAMPLE 1234 North 55 Street Bellevue, Nebraska 68005 402-292-2345 iasample@aol.com PROFESSIONAL REFERENCES Name Attaboy Company'''
phoneRegex.findall(resume)
它回来了 ['402-292-2345']如预期。你知道吗
因此,它直接在Shell中运行,而不是在IDLE的文本编辑器中。你知道吗
此模式尝试匹配3个数字,然后是一个破折号,再匹配3个数字和一个破折号,最后再匹配4个数字。你知道吗
Regexp find将无法转换输入格式,只能通过它进行搜索。要匹配您指出的数字,请尝试以下regexp
(大括号可用于重复,使regexp更易于阅读)
编辑:对于更通用的解决方案(例如,您不知道确切的输入格式),您可以尝试这样的方法
它将匹配一个由10个数字组成的字符串,可能用单个空格或破折号分隔某些/全部/无数字。你知道吗
括号后面看起来很有趣的
?:
将括号标记为不匹配,这本质上意味着将显示整个匹配项,而不仅仅是括号的内容。你知道吗相关问题 更多 >
编程相关推荐