Próbuję usunąć liczby na końcu danego ciągu znaków.Usuwanie liczb na końcu ciągu C#
AB123 -> AB
123ABC79 -> 123ABC
Próbowałem coś takiego;
string input = "123ABC79";
string pattern = @"^\\d+|\\d+$";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Jednak zastępczy ciąg znaków jest taki sam jak wejście. Nie jestem zaznajomiony z regex. Mogę po prostu podzielić ciąg znaków na tablicę znaków i wykonać pętlę, aby to zrobić, ale nie jest to dobre rozwiązanie. Co to jest dobra praktyka, aby usunąć liczby, które są tylko na końcu łańcucha?
Z góry dziękuję.
Deweloper ma problem. Wie, że może rozwiązać to za pomocą wyrażenia regularnego. Teraz ma dwa problemy. – Oliver
Wiele razy słyszałem powiedzenie i rozumiem, o co chodzi. Ale co sugerowałbyś zamiast wyrażeń regularnych dla tego problemu? Pętla nad tablicą znaków jest bardziej brudna. – tdgtyugdyugdrugdr
Może czuje się bardziej brudno, ale pod maską RegEx nie robi nic więcej. Utrzymywanie (być może) złożonego wyrażenia regularnego jest o wiele bardziej brudne niż wyrażanie tego samego w prostej pętli. Nie chcę mówić: "Nigdy nie używaj RegEx.", Ale powinieneś używać ich tylko wtedy, gdy naprawdę potrzebujesz, a także, być może, dodaj duży komentarz z wyjaśnieniem RegEx, ponieważ ma on tendencję do * pisania tylko * kod. Ach, i zanim zapomnę: Napisz test jednostkowy dla tej metody, który zostanie rozwiązany z wieloma różnymi ciągami (może za pomocą 'TestCaseSource'), aby upewnić się, że nic nie zepsujesz w przyszłości. – Oliver