3.16. Zastępowanie dopasowań tekstem docelowym generowanym na poziomie kodu proceduralnego

Problem

Chcemy zastąpić wszystkie dopasowania pewnego wyrażenia regularnego nowym łańcuchem konstruowanym w kodzie proceduralnym. Chcemy mieć możliwość zastępowania każdego dopasowania innym łańcuchem generowanym na podstawie dopasowanego tekstu.

Przypuśćmy na przykład, że chcemy zastąpić wszystkie liczby w jakimś łańcuchu ich dwukrotnościami.

Rozwiązanie

C#

Jeśli chcemy przetworzyć niewielką liczbę łańcuchów z wykorzystaniem tego samego wyrażenia regularnego, możemy posłużyć się wywołaniem statycznym:

string resultString = Regex.Replace(subjectString, @"\d+",
                                      new MatchEvaluator(ComputeReplacement));

Jeśli jednak planujemy użycie tego samego wyrażenia regularnego ...

Get Wyrażenia regularne. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.