Also baue ich einen kleinen Parser in C#, wo ein Benutzer Namen eingeben kann. Jetzt können diese Namen auf threeformats sein:Regex zum Entfernen von Satzzeichen, aber ohne Schrägstrich?
"name" OR "name/name" OR "name-name"
Der Benutzer kann eine Eingabezeichenfolge mit unterschiedlicher Interpunktion schreiben wie name?
oder name.
Um diese zu entfernen bekam ich einen regulären Ausdruck geht, sieht wie folgt aus:
var expression = "name/name";
var regexPunctuation = new Regex(@"[^-\w\s]");
expression = regexPunctuation.Replace(expression, string.Empty);
Meine Regex funktioniert für einzelne Namen und Namen mit einer -
dazwischen, aber nicht Namen, die einen Schrägstrich haben. Wenn der Benutzer name/name
eingibt, ist das Ergebnis nur name name
. Wie kann ich meine Regex so ändern, dass sie den Schrägstrich ignoriert, so dass das Ergebnis name/name
ist? Beachten Sie die zusätzlichen Leerzeichen zwischen der name/name
.
haben Sie versucht, einen Schrägstrich zu Ihrem ignorieren Muster hinzufügen? 'new Regex (@" [^ - \ w \ s /] ");' – DolceVita
Teilen Sie die Zeichenfolge zuerst und bearbeiten Sie jede der 2 Teilzeichenfolgen, dann schließen Sie sich wieder an. Wenn es kein '/' gibt, verarbeite nur den Namensteil. –
Was haben die zusätzlichen Leerzeichen mit dem Problem zu tun? Du sagst "nimm Notiz", aber soweit ich sehen kann, haben sie nichts mit dem Problem zu tun. Wenn sie relevant sind, erläutern Sie bitte detailliert. –