В настоящее время я делаю поиск и замену, используя этот шаблон:
"(?<=\\{).+?(?=\\})"
, Это находит все в фигурных скобках. (Предоставлено https://stackoverflow.com/a/8526268/1143917)
Я использую MatchEvaluator с делегатом, поэтому, когда входная строка {this} is a {string}
делегат получает this
а также string
,
Это не хорошо для меня, потому что я хочу заменить как спички, так и фигурные скобки.
Как изменить выражение регулярного выражения, чтобы делегат получал совпадения с включенными фигурными скобками, т.е. {this}
а также {string}
?
Удалите позитивный взгляд назад и позитивный взгляд, и просто используйте скобки:
"\\{[^\\}]+\\}"
Я не могу быть уверен в этом, потому что я никогда не использовал регулярные выражения с C ++, но принцип соответствует {
плюс все символы, которые не являются }
плюс }
,
Других решений пока нет …