替代在python Regex中分组模式

时间:2013-11-03 23:11:53

标签: python regex

假设我想匹配正则表达式以在文本中查找域地址。 (包括子域名,如果有的话) 例如: 它应该匹配

abc.xyz. 
google.
yahoo.
mail.google.

段:

pattern = '((\s*\w+.\s*)+)'
matches = re.findall(pattern,line)
for m in matches:
 .. 
 ..

内括号将给出我不需要的m [0],我只需要m [1]。 什么是内括号的替换,以便我得到m [0]的结果。

PS: 有额外的匹配组()是令人困惑的,我想避免使用它们,除非我需要这些特定的值。

1 个答案:

答案 0 :(得分:4)

您可以将?:放在开头:

,从而使群组无法捕捉
((?:\s*\w+.\s*)+)

BTW,外部括号是m[1],内部括号是m[2] - 编号通过计算左括号来起作用,从1开始。m[0]指的是整个正则表达式。在你的情况下,它与m[1]相同,因为你将整个事物放在一个组中(为什么?)。