Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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/3/sql-server-2005/2.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,我正在尝试匹配存储在某个字符串中的电话号码 str=“”Vijendra的联系电话是8861005000 Srinu的联系电话是886100501 pankaj的联系电话是+91-886100502 prasad联系电话为+92-886100503“” 对于上面的字符串,我创建了如下正则表达式:a=re.compile(r'(+\d+-)?(\d+)) 它能够正确地获取联系人号码 a、 芬德尔(str) [(“8861005000”)、(“886100501”)、(“+91-”、“8861005

我正在尝试匹配存储在某个字符串中的电话号码

str=“”Vijendra的联系电话是8861005000 Srinu的联系电话是886100501 pankaj的联系电话是+91-886100502 prasad联系电话为+92-886100503“”

对于上面的字符串,我创建了如下正则表达式:a=re.compile(r'(+\d+-)?(\d+))

它能够正确地获取联系人号码

a、 芬德尔(str)

[(“8861005000”)、(“886100501”)、(“+91-”、“886100502”)、(“+92-”、“886100503”)]

现在我只从正则表达式中删除了(),现在正则表达式看起来像是a=re.compile(r'(++\d+-)?\d++)

这一次,当我试图获取存储在字符串中的联系人号码时,我得到的字符串的值只有区号

['','+91-','+92-']

为什么new regex无法获取联系人号码?只取区号


我使用的是python 2.7.12

您应该看看正则表达式中的非捕获组。


如果您使用这些,您可以添加您的组,但它们不会作为结果返回。

将所有捕获组转换为非捕获组
r'(?:\+\d+-)?\d+'
您好,请您进一步解释您的评论/回答好吗阅读关于
re.findall
的Python文档,这里都有描述。如果模式中存在捕获组,则返回它们。