Python中如何移除被双引号包裹的连续右大括号后的双引号?
解决Python正则移除特定包裹的末尾转义双引号问题
直接调整正则表达式,通过捕获组保留需要的内容,替换掉目标末尾的"即可,代码如下:
import re my_string= r'abc"}"abc"}}"abc"}}}"abc"}}}}"abc"{abc}"' # 捕获开头的"和所有连续},替换时仅保留该捕获内容 result = re.sub(r'("}+)"', r'\1', my_string) print(result)
逻辑说明
- 正则表达式
r'("}+)"'中:()定义了第一个捕获组,内部的"}+匹配开头的转义双引号加上一个或多个连续的右大括号;- 后面的
"是我们需要移除的目标末尾转义双引号。
- 替换字符串
r'\1'代表引用第一个捕获组的内容,也就是保留"和所有连续的},直接去掉后面多余的"。
运行后输出结果完全符合你的期望:
abc"}abc"}}abc"}}}abc"}}}}abc"{abc}"
同时这个正则不会误匹配包含其他字符的情况(比如"{abc}"),因为它只匹配连续的},符合你的需求。
内容的提问来源于stack exchange,提问作者Yob
相关产品推荐
相关产品推荐

