我需要拆分用空格分隔的不同字符串,但我希望忽略嵌套双引号或双引号任意组合的空格。下面是一个例子:
c "a " bbh "." d1
输出应如下所示:
^{pr2}$或者像这样的双引号的另一种组合:
c "a "bbh"" d1
输出应如下所示:
c
"a "bbh""
d1
有没有什么方法可以将双引号的任何组合从拆分中排除?在
*编辑*
还有一个例子:
c "a " bbh "." d1 kj "mn"
输出应如下所示:
c
"a " bbh "."
d1
kj
"mn"
谢谢你们的帮助。实际上,我是根据我掌握的数据提出这个问题的。使我的问题定义不清的是数据格式错误!在
你试图像人们通常使用括号那样使用双引号。最后一个例子可以改写为
事实上,它需要这样重写才能完全解决。无法从语义上知道您希望将示例翻译为上面的字符串或
^{pr2}$或者
字符串中的引号越多,解释它的方式就越多。事实上,后两种解释更为明显,因为后者是引号在编程语言中的工作方式,而前者可以被视为贪婪的regex(就像bcorso的解决方案)。在
因此,您想要的是不可能的,但是如果您稍微更改一下,就可以通过递归解决方案(而不是正则表达式,因为您需要检查平衡括号)。在
你可以试试regex
它将一个字符串分成一对双引号之前的所有内容、双引号之间的所有内容以及之后的所有内容。然后根据双引号前后的空格完成分区。在
相关问题 更多 >
编程相关推荐