使用正则表达式替换单词中间的双引号
解决字符串内部双引号替换问题
嘿,我来帮你搞定这个字符串替换的难题!你需要把类似[u"column1" : u"abcd", u"column2" : u"te"st"]这种字符串里,值部分中间的双引号换成单引号,但保留值首尾的双引号,对吧?
之前的临时方案只能处理特定情况,这里给你一个通用的解法,用正则表达式就能精准实现需求:
具体实现代码
import re # 原字符串 my_string = '''[u"column1" : u"abcd", u"column2" : u"te"st"]''' # 正则替换中间的双引号 result = re.sub(r'(?<=u"[^"]*)"(?=[^"]*")', "'", my_string) print(result) # 输出结果:[u"column1" : u"abcd", u"column2" : u"te'st"]
正则表达式说明
这个正则(?<=u"[^"]*)"(?=[^"]*")的作用是精准锁定需要替换的双引号:
(?<=u"[^"]*):正向后顾,确保当前要替换的双引号,前面是u"开头的字符串,并且已经有若干非双引号字符(也就是我们处于值的内部)":就是我们要替换的那个中间双引号(?=[^"]*"):正向前瞻,确保这个双引号后面还有若干非双引号字符,直到值的结尾双引号
不管你的字符串里有多少个中间双引号,比如u"te"st"abc",这个方法都会把所有内部双引号换成单引号,变成u"te'st'abc",完全满足你的需求。
内容的提问来源于stack exchange,提问作者ABK
相关产品推荐
相关产品推荐

