我正在尝试使用
在{ }
之间提取值
"\\(\\{[^}]+\\}\\)"
java中的正则表达式。我的意见是
String text = "Hi this is {text to be extracted}."
我希望输出为
"text to be extracted"
但正则表达式无效。
答案 0 :(得分:8)
答案 1 :(得分:3)
regexp似乎格格不入。 您需要匹配组之前和之后的额外字符,并且您不需要转义括号。 此外,您可以使用命名组来准确提取您关注的文本
这是工作代码
String text = "Hi this is {text to be extracted}.";
Pattern p = Pattern.compile(".*\\{(?<t>[^}]+)\\}.*");
Matcher m = p.matcher(text);
if (m.matches()) {
System.out.println(m.group("t"));
}