gpt4 book ai didi

python - 如何在python中用正则表达式替换为小写

转载 作者:太空狗 更新时间:2023-10-29 22:10:08 27 4
gpt4 key购买 nike

我想搜索关键字(关键字是动态的)并以某种格式替换它们。例如:这些数据

keys = ["cat", "dog", "mouse"]
text = "Cat dog cat cloud miracle DOG MouSE"

必须转换为

converted_text = "[Cat](cat) [dog](dog) [cat](cat) cloud miracle [DOG](dog) [MouSE](mouse)"

这是我的代码:

keys = "cat|dog|mouse"
p = re.compile(u'\\b(?iu)(?P<name>(%s))\\b' % keys)
converted_text = re.sub(p, '[\g<name>](\g<name>)', text)

这很好用,只是我不能将最后一个参数转换为小写。这会像这样转换:

converted_text = "[Cat](cat) [dog](dog) [cat](cat) cloud miracle [DOG](DOG) [MouSE](MouSE)"

如何将最后一个参数转换为小写?似乎 python 无法编译\L 符号。

最佳答案

您可以使用一个函数来进行替换:

pattern = re.compile('|'.join(map(re.escape, keys)), re.IGNORECASE)
def format_term(term):
return '[%s](%s)' % (term, term.lower())

converted_text = pattern.sub(lambda m: format_term(m.group(0)), text)

关于python - 如何在python中用正则表达式替换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2643737/

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