关于模式模式= r"(。+)\ 1"和pattern = r"(。+)\ 2"在python中

时间:2017-05-15 11:04:29

标签: python design-patterns

你可以帮我解释一下这些模式吗? pattern = r"(。+)\ 1"和pattern = r"(。+)\ 2"

当我使用以下脚本时,没有问题:

import re
pattern = r"(.+) \1"
match = re.match(pattern, "word word")
if match:
   print ("Match 1")

但当我将模式更改为r"(。+)\ 2"它上升了一个错误。请准确解释这种模式的含义。

import re
pattern = r"(.+) \2"
match = re.match(pattern, "egg egg egg")
if match:
   print ("Match 1")

1 个答案:

答案 0 :(得分:1)

\1相当于re.search(...).group(1),这是正则表达式中第一个括号分隔的表达式。由于2nd group中没有regex,这就是为什么它无效。 如果您添加第二组,那么它将起作用

import re
pattern = r"(.+)() \2"
match = re.match(pattern, "egg egg egg")
if match:
   print ("Match 1")
Match 1