删除引号之间不需要的空格
有没有更优雅的方法来删除引号之间的空格(尽管使用这样的代码:
input = input.replace('" 12 "', '"12"')`)
从这样的句子:
At " 12 " hours " 35 " minutes my friend called me.
事情是数字可以改变,然后代码将无法正常工作。:)
回答
只要您的引语合理,您就可以使用正则表达式:
re.sub(r'"s*([^"]*?)s*"', r'"1"', input)
该模式读作“引用,任意数量的空格,不是引号(捕获)的内容,后跟任意数量的空格和引号。替换只是您在引号中捕获的内容。
请注意,捕获组中的量词是不情愿的。这可确保您不会捕获尾随空格。