2017-05-15 7 views
-1

これらのパターンを教えてもらえますか?パターン= R "(+)\ 1" とパターン= R "(+)\ 2"パターンパターン= r "(。+) 1"とパターン= r "(。+) 2"の場合

iは、次のスクリプトを使用すると、問題がない。

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") 
+0

'\ 1'はバックリファレンスです。グループ1にマッチしたものと一致します。あなたのパターンに**グループ**が1つしかないので、 '\ 2'は何も参照できません。 –

答えて

1

\1、正規表現の内の最初の括弧で区切ら発現re.search(...).group(1)と等価です。 regexには2nd groupが存在しないため、その理由で動作しません。 2番目のグループを追加すると、動作します

import re 
pattern = r"(.+)() \2" 
match = re.match(pattern, "egg egg egg") 
if match: 
    print ("Match 1") 
Match 1 
関連する問題