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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.