Я пытаюсь заменить некоторые значения строки. Вот пример строки:
_-[$kr-123] * #,##0.00_-;-[$USD-456] * #,##0.00_-;_-[$GBP-789] * \";-\";??_-;_-@_-
В частности, я хочу заменить 123
, 456
и 789
другими строками, которые извлекаются во время выполнения из Dictionary
- другими словами, я думаю, что мне нужно использовать MatchEvaluator
для замены на лету, поскольку потенциально могут потребоваться тысячи различных замен ди git на строку.
Ближайший шаблон регулярных выражений I Получил:
(?:\[[^\]]*-)(?<Id>[0-9]*)(?:\])
... где группа Id
должна содержать мои совпадения. В настоящее время этот шаблон будет соответствовать, например, [$kr-123]
, [$USD-456]
и [$GBP-789]
во всей их полноте. Я ожидал, что когда я перейду из групп без захвата (?:)
в положительные взгляды (?=)
, регулярное выражение будет соответствовать только ди git частям в скобках. Очевидно нет. Неужели я неправильно понял положительные взгляды, или, возможно, мой шаблон регулярных выражений плох для начала?
Обратите внимание, что я действительно получаю группу Id
для каждого Match
, но мне нужен Id
сам по себе, чтобы быть Match
, потому что замена Group
в Match
не очень хорошо работает внутри MatchEvaluator
(или мне так кажется - хотя я не совсем знаком с API).