3

次の文字列があるとしましょう:

s = """hi my name is 'Ryan' and I like to 'program' in "Python" the best"""

re.sub次の文字列を次のように変更する a を実行したいと思います。

"""hi my name is '{0}' and I like to '{1}' in "{2}" the best"""

これにより、コンテンツを保存できますが、元のコンテンツを再度追加できるように、そのコンテンツへの参照があります。

注:次のコードを使用して、引用符で囲まれたすべてのアイテムを取得するため、これをループして数字を参照します

items = re.findall(r'([\'"])(.*?)\1',s)

では、この種の参照を作成できるように、サブが番号インスタンスを認識できるようにするにはどうすればよいですか?

4

1 に答える 1

4

コールバックで使用re.sub:

>>> import itertools
>>> import re
>>> s = """hi my name is 'Ryan' and I like to 'program' in "Python" the best"""
>>> c = itertools.count(1)
>>> replaced = re.sub(r'([\'"])(.*?)\1', lambda m: '{0}{{{1}}}{0}'.format(m.group(1), next(c)), s)
>>> print(replaced)
hi my name is '{1}' and I like to '{2}' in "{3}" the best

itertools.count数値の生成に使用:

>>> it = itertools.count(1)
>>> next(it)
1
>>> next(it)
2
>>> next(it)
3
于 2013-09-11T16:04:01.920 に答える