[.NET C++] wyrażenia regularne - przetwarzanie trafien

0

Witam
Ćwiczę sobie wyrażenia regularne i nie mogę sobie z nimi poradzić. Podpowie mi ktoś może jak:

System::String^ str = "! ala ma kota !";
str = System::Replace(str,"", "");
jak powinno wyglądać to wyrażenie żeby wyszło "! ma !"?

a w drugim przypadku

System::String^ str = "! ala 65 kota !";
str = System::Replace(str,"", "");
jak powinno wyglądać to wyrażenie żeby wyszło "! ala A kota"? chcę aby liczbę zamieniło na literę, ale wg strony kodowej, nie na sztywno tylko żeby każdą liczbę z pomiędzy wskazanego tekstu zamieniało na literę

0

"(ala )|(kota )", ""
"65 ", "A "

0

Na moje oko bez ewaluatora się tego w prosty sposób nie da.

using namespace System;
using namespace System::Text::RegularExpressions;

String ^CodeToCharME(Match ^m) 
{
     return ((Char)int::Parse(m->ToString())).ToString();
}
int main(array<System::String ^> ^args)
{
     MatchEvaluator ^codeToCharME = gcnew MatchEvaluator(CodeToCharME);

     Console::WriteLine(Regex::Replace("! ala 65 kota !", "\\d+", codeToCharME));
     return 0;
}

W sumie można to zapisać nieco ładniej, to tylko przykład.

0

Dzięki :-) w końcu coś zacząłem z tego rozumieć

1 użytkowników online, w tym zalogowanych: 0, gości: 1