对于不受字符限制的字符串,我需要 java 模式。
我有一个字符串(如下所述),其中一些大括号由单引号和其他大括号不是。我想用另一个字符串替换不受单引号限制的大括号。
原始字符串:
this is single-quoted curly '{'something'}' and this is {not} end
需要转换为
this is single-quoted curly '{'something'}' and this is <<not>> end
请注意,未用单引号包围的大括号 { } 已替换为 << >>。
但是,我的代码打印(字符被吃掉)文本为
this is single-quoted curly '{'something'}' and this is<<no>> end
当我使用模式时
[^']([{}])
我的代码是
String regex = "[^']([{}])";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
if ( "{".equals(matcher.group(1)) ) {
matcher.appendReplacement(strBuffer, "<<");
} else if ( "}".equals(matcher.group(1))) {
matcher.appendReplacement(strBuffer, ">>");
}
}
matcher.appendTail(strBuffer);