Sto provando a rimuovere i numeri alla fine di una determinata stringa.Rimozione dei numeri alla fine di una stringa C#
AB123 -> AB
123ABC79 -> 123ABC
Ho provato qualcosa del genere;
string input = "123ABC79";
string pattern = @"^\\d+|\\d+$";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Eppure la stringa di sostituzione è la stessa dell'input. Non ho molta familiarità con regex. Posso semplicemente dividere la stringa in un array di caratteri e passarci sopra per farlo, ma non mi sembra una buona soluzione. Qual è una buona pratica per rimuovere i numeri che sono solo alla fine di una stringa?
Grazie in anticipo.
Lo sviluppatore ha un problema. Sa che può risolverlo con un'espressione regolare. Ora ha due problemi. – Oliver
Ho sentito il detto più volte e capisco il punto che fa. Ma cosa suggeriresti invece di regex per questo problema? Fare il ciclo su una schiera di personaggi sembra più sporco. – tdgtyugdyugdrugdr
Forse sembra più sporco, ma sotto la cappa un RegEx non fa altro. E mantenere un'espressione regolare (forse complessa) è molto più sporco, quindi esprimere lo stesso in un ciclo semplice. Non voglio dire: "Non usare mai RegEx.", Ma dovresti forse usarli solo se davvero ne hai bisogno e magari aggiungere un grosso commento con una spiegazione del RegEx, perché tende a essere * scrivi solo * codice. Ah, e prima che dimentichi: scrivi un test unitario per quel metodo che verrà affrontato con un sacco di stringa diversa (magari attraverso un 'TestCaseSource') per assicurarti di non rompere nulla in futuro. – Oliver