使用单个正则表达式在Java中解析以下字符串的最佳方法是什么?
字符串:
someprefix foo=someval baz=anotherval baz=somethingelse
我需要提取someprefix
,someval
,anotherval
和somethingelse
。该字符串始终包含一个前缀值(在示例中为someprefix
),并且可以具有0到4个键值对(在示例中为foo=someval baz=anotherval baz=somethingelse
)
答案 0 :(得分:2)
您可以使用此正则表达式来捕获您想要的文本,
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
哪个捕获的单词前面带有(?<==|^)\w+
字符或位于字符串的=
开头。
示例相同的Java代码,
^
打印
Pattern p = Pattern.compile("(?<==|^)\\w+");
String s = "someprefix foo=someval baz=anotherval baz=somethingelse";
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}