[英]how to find double quotes between single quotes using regex expression?
我有一个字符串,如“你如何”,我想用 python 中的正则表达式将“是”周围的引号内的引号替换为 \”
input_file = 'D:/Extracts/yourFileName.csv'
file_output= 'D:/Extracts/yourFileName_out.csv'
with open(input_file, 'r',encoding="utf8") as f, open(file_output, 'w',encoding="utf8") as fo:
for line in f:
fo.write(line.replace('"', '\"').replace(""", ""))
我想要 output 像"how \"are\" you"
字符串'\"'
和'"'
是相同的:它们都只是一个双引号,因为序列\"
编码了一个双引号字符(通常用于"
-quoted 字符串)。
如果你真的想在引号前加一个反斜杠,你必须转义它:
fo.write(line.replace('"', '\\"'))
为了不替换第一个和最后一个字符,您可以改用正则表达式:
fo.write(re.sub('(?<!^)"(?!$)', '\\"', line))
正则表达式由一个否定的lookbehind ( (?<!^)
; 断言没有行在引号之前开始)、引号字符本身和一个否定的lookahead ( (?!$)
; 断言没有行在引号之后结束)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.