在正则表达式中重复捕获组

时间:2018-12-18 09:13:11

标签: java regex

使用单个正则表达式在Java中解析以下字符串的最佳方法是什么?

字符串: someprefix foo=someval baz=anotherval baz=somethingelse

我需要提取someprefixsomevalanothervalsomethingelse。该字符串始终包含一个前缀值(在示例中为someprefix),并且可以具有0到4个键值对(在示例中为foo=someval baz=anotherval baz=somethingelse

1 个答案:

答案 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());
}

Live Demo