bonn-to-code.net Keine Angst vor Regulären Ausdrücken Martin Winkler
Was ist ein Regulärer Ausdruck? Eine Schablone Schablone (RegEx)......passt auf a*a, aa, aaa,... (aa)*aa, aaaa,... (a|b)a, b
Character Classes AusdruckBedeutung.Beliebiger Character [abcd] oder [a-zA-Z]Einer aus der Menge [^abcd]Keiner aus der Menge
Character Classes (cont'd) AusdruckBedeutung \sWhitespace Character \SKein Whitespace \dZiffer (0,…,9) \DKeine Ziffer \wWord-Character \WKein Word-Character
Group ( ) (? abc) Named Group (aa)* (a|b) (? )
Quantifier AusdruckBedeutung *0 oder mehr +1 oder mehr ?0 oder 1
Anchor AusdruckBedeutung \AMuss am String-Anfang matchen \z ( kleines z )Muss am String-Ende matchen Bar\zfindet einen Treffer bei FooBar \ABarfindet keinen Treffer bei FooBar
Alternative | ab|cd ab oder cd
Was kann ich damit anfangen? Prüfen: Erfüllt ein string ein Muster? Extrahieren: Substrings rausgreifen und weiterverwenden Ersetzen: Ersatz verwendet das Ersetzte...
Fallstricke #1 A|AB vs AB|A Pattern A|AB EingabeAMatched A ABMatched A Pattern AB|A EingabeAMatched A ABMatched AB
Fallstricke #2 Zeilenumbrüche und. (Wildcard) Wildcard. matched per Default-Verhalten keine Zeilenumbrüche. Sollen Zeilenumbrüche ebenfalls matchen, Singleline-Modus aktivieren: Regex.Match( input, pattern, RegexOptions.Singleline );
Fallstricke #3 B(? A)?B ist nicht B(? A?)B In beiden Fällen ist A in BAB optional Aber: (...)? EingabeBBGroup[A].Count ist 0 (...?) EingabeBBGroup[A].Count ist 1
Fallstricke #4 \(* \)* stellt nicht sicher: gleiche Anzahl von ( und ) \(* \)* matched sowohl ( ),(( )) Als auch ()) oder ))) usw.
Wo schlage ich nach? Liste aller Sprachelemente Umfassende Erklärung von RegEx (auch lookahead/lookbehind assertions und back references) RegEx Optionen us/library/system.text.regularexpressions.regexoptions%28v=VS.100%29.aspx Was ist denn nun in \w enthalten? und character-whttp://stackoverflow.com/questions/ /net-regex-what-is-the-word- character-w dazu: Unicode Character Database dazu: Liste der 'Punctuation, Connector' Category