Obsługa regex escape tekst zastępczy, który zawiera znak dolara
<code>string input = "Hello World!"; string pattern = "(World|Universe)"; string replacement = "$1"; string result = Regex.Replace(input, pattern, replacement); </code>
Mając następujący przykład, wynik byłby następujący"Hello World!"
, jak$1
zostaje zastąpiony pierwszą grupą(World|Universe)
, jednak chcę tego rezultatu"Hello $1!"
TheRegex.Escape
Metoda ta ma być użyta do ucieczki z wzorca Regex, a nie do zastąpienia, ponieważ może uciec od innych znaków, takich jak ukośniki i inne znaki wzorca Regex. Oczywistym rozwiązaniem mojego problemu jest to, aby mój zamiennik był równy"$$1"
i osiągnie"Hello $1!"
, ale zastanawiałem się, czy znak dolara jest jedyną wartością, którą muszę uciec (zakładającreplacement
jest generowany przez użytkownika i nie wiem tego z wyprzedzeniem), czy istnieje funkcja pomocnicza, która już to robi.
Czy ktoś wie o funkcji, która wymyka się tej wartości zastępczejRegex.Replace(string input, string pattern, string replacement)
używa?