2个回答
展开全部
[^}]表示不包括右大括号即可。
根据你的正则表达式,以下语句均合法:
${anythingYouNeed}
${0123$4{}
${}
换成{ 一样能用。
根据你的正则表达式,以下语句均合法:
${anythingYouNeed}
${0123$4{}
${}
换成{ 一样能用。
追问
换成{不能用,我亲自运行过
String jsonStr = "{\"header\":{\"name\":\"${name}\",\"time\":\"20170310154522\","
+ "}";
System.out.println(jsonStr);
String FuncKey = "\\$\\{[^{]*\\}";
Pattern p = Pattern.compile(FuncKey);
Matcher m = p.matcher(jsonStr);
while(m.find()) {
System.out.println(m.group());
}
输出成这样:
${name}","time":"20170310154522",}
正确是这样:
${name}
追答
${name}","time":"20170310154522",}
这个结果难道不对吗?
换成{之后,正则表达式就变成了开头为${,然后匹配任意数量不为{的字符,然后匹配}。
当然是\\$\\{[^}]*\\} 才能获得你想要的结果啊。因为这是在匹配任意数量不为}的字符,然后匹配}。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询