2009-07-16 4 views
21

Ich weiß genau über reguläre Ausdrücke zilch und dachte, das war so gut wie jede andere Gelegenheit, zumindest die grundlegendsten Grundlagen zu lernen.Wie erfolgt die String-Ersetzung ohne Berücksichtigung der Groß-/Kleinschreibung mit regulären Ausdrücken?

Wie mache ich diese String-Ersetzung ohne Berücksichtigung der Groß-/Kleinschreibung in C# mit einem regulären Ausdruck?

myString.Replace("/kg", "").Replace("/KG", ""); 

(Beachten Sie, dass die '/' eine wörtliche ist.)

Antwort

60

Sie können:

myString = Regex.Replace(myString, "/kg", "", RegexOptions.IgnoreCase); 

Wenn Sie dies eine Menge Zeit tun werden, könnten Sie tun, :

// You can reuse this object 
Regex regex = new Regex("/kg", RegexOptions.IgnoreCase); 
myString = regex.Replace(myString, ""); 

(?i:/kg) verwenden würde nur, dass etwas eines larg machen Wenn regulärer Ausdruck die Groß-/Kleinschreibung nicht berücksichtigt - ich persönlich bevorzuge es, RegexOptions zu verwenden, damit eine Option das gesamte Muster beeinflusst.

MSDN hat pretty reasonable documentation von regulären .NET-Ausdrücken.

+0

Sie schlagen mich dazu! :) –

+0

Sie haben den Doppelpunkt weggelassen: (? I:/kg) –

+0

@Alan: Danke, jetzt behoben. –

0

Es hängt davon ab, was Sie erreichen möchten. Ich nehme an, Sie möchten eine Folge von Zeichen nach einem Schrägstrich entfernen?

string replaced = Regex.Replace(input,"/[a-zA-Z]+",""); 

oder

string replaced = Regex.Replace(input,"/[a-z]+","",RegexOptions.IgnoreCase); 
2

"/ [kK] [gG]" oder "(i:?/Kg)" wird für Sie passen.

deklarieren Sie ein neues Regex-Objekt und übergeben Sie eines davon als Ihren Inhalt. Führen Sie dann regex.replace aus.

0
Regex regex = new Regex(@"/kg", RegexOptions.IgnoreCase); 
    regex.Replace(input, ""); 
+0

siehe Jon Skeet unten, gab er zuerst –

+1

Kein Bedarf für @ wenn es nur * vorwärts * Schrägstriche gibt. –

+0

Ja, ich habe nregex.com verwendet, um die erste Zeile des Beispiels zu erstellen. Sie verwenden das @ unabhängig vom Muster –

4

So:

myString = Regex.Replace(myString, "/[Kk][Gg]", String.Empty); 

Hinweis, dass es auch die Kombinationen/kg und/kg handhaben, so dass es mehr tut, als Zeichenfolge Ersatz Beispiel.

Wenn Sie nur die spezifische Kombinationen/kg und/KG zu handhaben:

myString = Regex.Replace(myString, "/(?:kg|KG)", String.Empty); 
+0

Warum der Downvote? Wenn Sie nicht erklären, was Sie für falsch halten, kann es die Antwort nicht verbessern. – Guffa

0

Here ist ein Beispiel unter Verwendung der Regex.Replace Funktion.

Verwandte Themen