【发布时间】:2021-04-23 00:17:02
【问题描述】:
除非空格包含在可转义的引号中,否则我需要能够用空格分隔字符串。换句话说,spam spam spam "and \"eggs" 应该返回 spam、spam、spam 和 and "eggs。我打算在 python 中使用re.split 方法来执行此操作,您可以在其中使用正则表达式识别要拆分的字符。
我发现这个可以找到可转义引号之间的所有内容:
((?<![\\])['"])((?:.(?!(?<![\\])\1))*.?)\1
来自:https://www.metaltoad.com/blog/regex-quoted-string-escapable-quotes 并且 this 按字符拆分,除非在引号之间:
\s(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)
来自:https://stackabuse.com/regex-splitting-by-character-unless-in-quotes/。这会查找在空格和行尾之间有偶数个双引号的所有空格。
我正在努力将这两个解决方案结合在一起。
对于参考参考,我发现了这个我发现了这个超级有用的正则表达式备忘单:https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285
我还发现https://regex101.com/ 非常有用:允许您测试正则表达式
【问题讨论】: