Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python或正则表达式中的非空结果_Python_Regex - Fatal编程技术网

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})”
它很有效,非常感谢