我很难弄清楚如何用 ''
替换每个空格,除非出现在 ""
之间。
例如——
a = c + d;
是
a=c+d
和
foo ("hi bye", "bye hi");
是
foo("hi bye","bye hi");
我试过类似的东西
re.sub('^(\"[^\"\n]*\")|\s|\\n', '', line)
但显然那是行不通的。
最佳答案
查找:
r'(".*?")|(\s+)'
替换:
r'\1'
想法是忽略引号内的所有字符,方法是首先将所有引号与内部的内容 (".*?"
) 匹配并替换为相同的内容 (\1
).
我们知道剩下的空格 (\s+
) 不会在引号内(或者第一条规则会匹配它们)并且将这些空格替换为空。
关于python - 正则表达式 - 替换除特定字符串之外的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042694/