首页 > 解决方案 > 与“String.split”不匹配两个字符序列之间的正则表达式

问题描述

标签: javaregexscalaregex-negationregex-lookarounds

解决方案


由于您的键值对由逗号和一些空格分隔,因此您可以使用此正则表达式在字符=之前的每个逗号上拆分,=

,\s*(?=\w+=)

在线演示

检查这些在所需位置拆分字符串的 Java 代码,

String[] data = "foo=\"bar, harbor\", url=http://city.com/start_city=Boston, MAUS&end_city=New York, NY US, is_test=false".split(",\\s*(?=\\w+=)");
Arrays.stream(data).forEach(System.out::println);

印刷,

foo="bar, harbor"
url=http://city.com/start_city=Boston, MAUS&end_city=New York, NY US
is_test=false

让我知道这是否适用于您的案例,如果没有,请添加它不起作用的案例。


推荐阅读