動作しないのはなぜ私は数字のためのいくつかの交換を行うためにre.sub()
を使用している場合、私は、Pythonの「re
」部分を学んでいます、そして名前のパターン(?P=name)
が私を混同し、Pythonの正規表現(?P = nameは)
と文字「(?P=name)
」は機能しませんが、パターン「\N
」と「\g<name>
」は意味があります。以下のコード:
[IN]print(re.sub(r'(?P<digit>\d{3})-(?P<char>\w{4})', r'(?P=char)-(?P=digit)', '123-abcd'))
[OUT] (?P=char)-(?P=digit)
[IN] print(re.sub(r'(?P<digit>\d{3})-(?P<char>\w{4})', r'\2-\1', '123-abcd'))
[OUT] abcd-123
[IN] print(re.sub(r'(?P<digit>\d{3})-(?P<char>\w{4})', r'\g<char>-\g<digit>', '123-abcd'))
[OUT] abcd-123
それは私が(?P=name)
を使用する場合、代替を行うことができなかったのはなぜ?
正しく使用する方法は?私は
''におけるパターン後方参照である(P =名前は?)。置換パターンでは使用できません。 –
"P = name"で何を達成しようとしていましたか? – madtyn