【发布时间】:2018-05-03 09:20:57
【问题描述】:
我需要在 Java 中拆分一个字符串(首先删除引号之间的空格,然后在空格处拆分。)
"abc test=\"x y z\"magic=\"你好\"hola"
变成:
首先:
"abc test=\"xyz\" magic=\"hello\" hola"
然后:
- abc
- test="xyz"
- magic="你好"
- 你好
场景: 我从输入中得到一个类似上面的字符串,我想把它分成上面的部分。一种方法是首先删除引号之间的空格,然后在空格处拆分。引号前的字符串也使其复杂化。第二个在空格处拆分,但如果在引号内则不拆分,然后从单个拆分中删除空格。我尝试使用 "\"([^\"]+)\"" 捕获引号,但我无法仅捕获引号内的空格。我尝试了更多但没有运气。
【问题讨论】:
-
你本质上是想写一个解析器。然后以您想要的任何格式输出数据。正则表达式本身可能不是适合您的解决方案。你能告诉我们你尝试了什么,以及目标是什么(你为什么这样做)
-
你可以试试
System.out.println("abc test=\"x y z\" magic=\" hello \" hola".replace(" ", ",\n"));