string = "@ABlue , @Red , @GYellow, @Yellow, @GGreen"
new = re.sub('(@[A-Z][A-Z])', "########" , string)
我需要一个正则表达式,能够通过两个大写字母检查@ follow,然后删除@和第一个大写字符.c
答案 0 :(得分:1)
使用捕获组和反向引用:
>>> import re
>>> string = "@ABlue , @Red , @GYellow, @Yellow, @GGreen"
>>> re.sub('@[A-Z]([A-Z])', r"\1" , string)
'Blue , @Red , Yellow, @Yellow, Green'
替换字符串中的 \1
将替换为第一个捕获组(第二个大写字母)。
注意使用r"raw string literal"
。否则,您需要转义\
:"\\1"
使用positive lookahead assertion替代方案:
>>> re.sub('@[A-Z](?=[A-Z])', '' , string)
'Blue , @Red , Yellow, @Yellow, Green'
答案 1 :(得分:0)
>>> new = re.sub(r"@[A-Z]([A-Z])", r"\1" , string)
>>> new
'Blue , @Red , Yellow, @Yellow, Green'