2017-04-12 2 views
4

Ich habe den Dateinamen 0154562A5BS16101[001] in dem ich das "[001]" entfernen möchte, um 0154562A5BS16101 zu verlassen.So entfernen Sie die Zeichenfolge "[xyz]" aus dem Dateinamen mit Regex?

Ich habe mit dem regex versucht:

var output = Regex.Replace(filename, @"[]", string.Empty); 

Aber es wirft:

System.ArgumentException: 'parsing '[]' - Unterminated [] set.' 

ich so das Gefühl, ein recht einfach für Regex Meister ist, aber ich habe nicht viel Erfahrung mit Regex.

Antwort

4

Seit [ und ] sind Metazeichen in regex Sprache, müssen Sie sie entkommen. Sie müssen auch regex sagen, dass Sie alles passen wollen die eckige Klammer auf:

var output = Regex.Replace(filename, @"\[[^\]]*\]", string.Empty); 

\[ und \] an den Enden sind in eckigen Klammern, die Sie ersetzen möchten. Der Abschnitt [^\]]* in der Mitte stimmt mit einer beliebigen Anzahl anderer Zeichen als der schließenden eckigen Klammer überein.

Demo.

+0

Das funktioniert ein absolutes Profil. Vielen Dank! Ich muss mehr über Regex lesen. – tura08

Verwandte Themen