问题是这样的,我需要将大括号的文字进行加粗处理
比如 从{二仙桥}到成华大道
变成 二仙桥到成华大道
代码如下
Pattern PATTERN = Pattern.compile("\\{(\\S+)}");
String str = "从{二仙桥}到{成华大道}";
Matcher matcher = PATTERN.matcher(str);
while (matcher.find()) {
String key = matcher.group(0);
String value = matcher.group(1);
str = str.replace(key, String.format("<span style='font-weight:bold'>%s</span>", value));
// 输出的结果 从<span style='font-weight:bold'>二仙桥}到{成华大道</span>
}
但是问题来了,如果你的大括号是多组的情况下,会匹配有问题,因为\S是匹配所有非空字符 而大括号也是属于非空字符
导致替换有误,但是我们在匹配的时候,是把{} 做为一组