Groß- / Kleinschreibung ohne Berücksichtigung der RegexOptions-Enumeration
Ist es möglich, eine groß-und Kleinschreibung entsprechen, die in C# unter Verwendung der Regex-Klasse ohne die RegexOptions.IgnoreCase-flag?
Was ich möchte in der Lage sein zu tun ist, innerhalb der regex selbst definieren, ob oder nicht, ich will die match-operation erfolgt in einer case-insensitive Weise.
Möchte ich diese regex taylor
passen auf folgende Werte:
- Taylor
- taylor
- taYloR
InformationsquelleAutor der Frage Eric Schoonover | 2010-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
MSDN-Dokumentation
(?i)taylor
mit allen Eingaben, die ich angegeben ohne die RegexOptions.IgnoreCase-flag.Zwingen groß-und Kleinschreibung kann ich tun
(?-i)taylor
.Sieht es aus wie die anderen Optionen sind:
i
, groß-und Kleinschreibungs
, single line modem
multi-line-modex
, freie Abstände modeInformationsquelleAutor der Antwort Eric Schoonover
Als Sie schon herausgefunden,
(?i)
ist die in-line-äquivalent vonRegexOptions.IgnoreCase
.Nur zur info, es gibt ein paar tricks, die Sie tun können:
Und Sie können sogar kombinieren Fahnen wie diese:
a(?mi-s)bc
Bedeutung:InformationsquelleAutor der Antwort Bart Kiers
Als spoon16 sagt, es ist
(?i)
. MSDN hat eine Liste von Optionen für reguläre Ausdrücke, die enthält ein Beispiel der Verwendung von case-insensitive matching für nur Teil eines Spiels:Hier das "t" ist abgestimmt Fall-unempfindlich, aber der rest ist case-sensitive. Wenn Sie nicht angeben, ein Teilausdruck, der option für den rest der umschließenden Gruppe.
Also für dein Beispiel, Sie haben könnte:
Dieser würde passen: "Mein name ist TAYlor", aber nicht "MEIN NAME IST taylor".
InformationsquelleAutor der Antwort Jon Skeet