gpt4 book ai didi

python - 使用正则表达式将python中的大写重复字母替换为单个小写字母

转载 作者:IT老高 更新时间:2023-10-28 22:14:37 65 4
gpt4 key购买 nike

我试图用小写字母的单个实例替换在字符串中重复两次的大写字母的任何实例。我正在使用以下正则表达式,它能够匹配重复的大写字母,但我不确定如何将被替换的字母变为小写。

import re
s = 'start TT end'
re.sub(r'([A-Z]){2}', r"\1", s)
>>> 'start T end'

如何使“\1”小写?我不应该使用正则表达式来执行此操作吗?

最佳答案

Pass a function作为 repl 参数。 MatchObject被传递给这个函数并且 .group(1) 给出第一个带括号的子组:

import re
s = 'start TT end'
callback = lambda pat: pat.group(1).lower()
re.sub(r'([A-Z]){2}', callback, s)

编辑
是的,你应该使用 ([A-Z])\1 而不是 ([A-Z]){2} 以便 not 匹配例如AZ。 (参见@bobince 的 answer。)

import re
s = 'start TT end'
re.sub(r'([A-Z])\1', lambda pat: pat.group(1).lower(), s) # Inline

给予:

'start t end'

关于python - 使用正则表达式将python中的大写重复字母替换为单个小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145451/

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