假设我想匹配正则表达式以在文本中查找域地址。 (包括子域名,如果有的话) 例如: 它应该匹配
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: 有额外的匹配组()是令人困惑的,我想避免使用它们,除非我需要这些特定的值。
答案 0 :(得分:4)
您可以将?:
放在开头:
((?:\s*\w+.\s*)+)
BTW,外部括号是m[1]
,内部括号是m[2]
- 编号通过计算左括号来起作用,从1开始。m[0]
指的是整个正则表达式。在你的情况下,它与m[1]
相同,因为你将整个事物放在一个组中(为什么?)。