gpt4 book ai didi

python - 带有模式引用的正则表达式子

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:32 24 4
gpt4 key购买 nike

假设我有以下字符串:

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

我想运行一个 re.sub 将以下字符串更改为:

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

这将让我保存内容,但有一个引用,以便我可以将原始内容添加回去。

注意:我使用以下代码来获取引号中的所有项目,因此我将遍历此代码以引用数字

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

那么我怎样才能让 sub 识别数字实例,以便我可以创建这种引用?

最佳答案

使用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

关于python - 带有模式引用的正则表达式子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18745973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com