【发布时间】:2018-09-29 16:45:47
【问题描述】:
我有一个如下所示的字符串:
my_string='''[u"column1" : u"abcd", u"column2" : u"te"st"]'''
我想替换单词中间的双引号(通过单引号),而不更改开头或结尾的双引号。这意味着我希望my_string 是这样的:
'''[u"column1" : u"abcd", u"column2" : u"te'st"]'''
现在,我只是使用一种变通解决方案来做到这一点。基本上,如果单词前面没有字母 u,我的解决方案会替换单词中间的双引号。这是它的样子:
unusual=re.findall(r'([a-tv-zA-TV-Z0-9]\"[a-zA-Z0-9])', my_string)
if unusual:
for un in unusual:
my_string=my_string.replace(un, un.replace('"', "'"))
现在这对我有用,但改进这个解决方案会很有趣,因为如果我在双引号旁边的单词中间有一个u,它将不再起作用。例如:my_string='''[u"column1" : u"abcd", u"column2" : u"teu"st"]'''
我能得到一些帮助吗?我的想法不多了:)
PS:我正在使用python 2.7
【问题讨论】:
-
我担心信息被破坏了......你必须在这里应用一些启发式,或者修复上游的问题。
-
可以跳过以下格式
<space>u"
标签: python regex python-2.7