Python或正则表达式中的非空结果
我需要找到可以采用两种不同形式的子字符串:Python或正则表达式中的非空结果,python,regex,Python,Regex,我需要找到可以采用两种不同形式的子字符串: >>> test = '348249432' >>> x = re.findall("([2][0][0-9]{7})|([3][0-9]{8})", test) >>> x [('', '348249432')] 我怎么能要求Python不返回空字符串,而只在可以进行匹配的情况下给我结果呢?findall返回捕获的组,如中所述: 如果模式中存在一个或多个组,则返回组列表;如果模式有多个组,这将是
>>> test = '348249432'
>>> x = re.findall("([2][0][0-9]{7})|([3][0-9]{8})", test)
>>> x
[('', '348249432')]
我怎么能要求Python不返回空字符串,而只在可以进行匹配的情况下给我结果呢?
findall
返回捕获的组,如中所述:
如果模式中存在一个或多个组,则返回组列表;如果模式有多个组,这将是一个元组列表结果中包括空匹配,除非它们触及另一个匹配的开头
您希望在一个捕获组中使用交替,我将这样写:
>>> test = '348249432'
>>> re.findall("(20[0-9]{7}|3[0-9]{8})", test)
['348249432']
在单个组中使用
,就像这样r“([2][0][0-9]{7}[3][0-9]{8})”
它很有效,非常感谢