弄乱它之后,您可以使用Regex来实现。在以下位置运行“全部匹配”的等效项:
((?<=("))[w ]*(?=("(s|$))))|((?<!")w+(?!"))一个Java示例:
import java.util.regex.Pattern;import java.util.regex.Matcher;public class Test{ public static void main(String[] args) { String someString = ""Multiple quote test" not in quotes "inside quote" "A work in progress""; Pattern p = Pattern.compile("((?<=("))[\w ]*(?=("(\s|$))))|((?<!")\w+(?!"))"); Matcher m = p.matcher(someString); while(m.find()) { System.out.println("'" + m.group() + "'"); } }}输出:
'Multiple quote test''not''in''quotes''inside quote''A work in progress'
上面使用示例的正则表达式分解可以在这里查看:
http://regex101.com/r/wM6yT9
综上所述,正则表达式不应成为所有问题的解决方案-
我只是在开心。这个例子有很多边缘情况,例如处理unipre字符,符号等。对于这种任务,最好使用经过验证的真实库。使用此答案之前,请先看看其他答案。



