Java正则表达式在大括号之间获取数据

我正在寻找一个正则表达式来匹配大括号之间的文本。

{one}{two}{three}

我希望将它们分别作为单独的组onetwothree

我试过Pattern.compile("\\{.*?\\}");只删除第一个和最后一个大括号。

回答:

您需要( )围绕要捕获的内容使用捕获组。

只是为了匹配并捕获大括号之间的内容。

String s  = "{one}{two}{three}";

Pattern p = Pattern.compile("\\{([^}]*)\\}");

Matcher m = p.matcher(s);

while (m.find()) {

System.out.println(m.group(1));

}

输出量

one

two

three

如果要三个特定的匹配组…

String s  = "{one}{two}{three}";

Pattern p = Pattern.compile("\\{([^}]*)\\}\\{([^}]*)\\}\\{([^}]*)\\}");

Matcher m = p.matcher(s);

while (m.find()) {

System.out.println(m.group(1) + ", " + m.group(2) + ", " + m.group(3));

}

输出量

one, two, three

以上是 Java正则表达式在大括号之间获取数据 的全部内容, 来源链接: utcz.com/qa/413249.html

回到顶部