Мне нужен шаблон 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);