1 / 14

Keine Angst vor Regulären Ausdrücken

Keine Angst vor Regulären Ausdrücken. 21.09.2010 Martin Winkler. EMail: martinwinkler82@web.de. Was ist ein Regulärer Ausdruck?. Eine „Schablone“. Character Classes. Character Classes (cont'd). Group. ( ). (aa)* (a|b). Named Group. (?<name> ). (?<theAbcGroup>abc). Quantifier.

leo-vaughan
Download Presentation

Keine Angst vor Regulären Ausdrücken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Keine Angst vor Regulären Ausdrücken 21.09.2010 Martin Winkler EMail:martinwinkler82@web.de

  2. Was ist ein Regulärer Ausdruck? • Eine „Schablone“

  3. Character Classes

  4. Character Classes (cont'd)

  5. Group ( ) (aa)* (a|b) Named Group (?<name> ) (?<theAbcGroup>abc)

  6. Quantifier

  7. Anchor Bar\z findet einen Treffer bei „FooBar“ \ABar findet keinen Treffer bei „FooBar“

  8. Alternative | ab|cd ab oder cd

  9. Was kann ich damit anfangen? • Prüfen:Erfüllt ein string ein Muster? • Extrahieren:Substrings rausgreifen und weiterverwenden • Ersetzen:Ersatz verwendet das Ersetzte • ...

  10. Fallstricke #1 A|AB vs AB|A Pattern A|AB Eingabe A Matched A AB Matched A Pattern AB|A Eingabe A Matched A AB Matched AB

  11. 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 );

  12. Fallstricke #3 B(?<A>A)?B ist nicht B(?<A>A?)B In beiden Fällen ist A in BAB optional Aber: (...)? Eingabe BB Group[„A“].Count ist 0 (...?) Eingabe BB Group[„A“].Count ist 1

  13. Fallstricke #4 \(* \)* stellt nicht sicher: gleiche Anzahl von ( und ) \(* \)* matched sowohl ( ),(( )) Als auch ()) oder ))) usw.

  14. Wo schlage ich nach? Liste aller Sprachelemente http://msdn.microsoft.com/en-us/library/az24scfc.aspx Umfassende Erklärung von RegEx (auch lookahead/lookbehind assertions und back references) http://www.vsj.co.uk/articles/display.asp?id=789 RegEx Optionen http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions%28v=VS.100%29.aspx Was ist denn nun in \w enthalten? http://msdn.microsoft.com/en-us/library/20bw873z.aspx#WordCharacter und http://stackoverflow.com/questions/2998519/net-regex-what-is-the-word-character-w dazu: Unicode Character Database http://www.unicode.org/ucd/ dazu: Liste der 'Punctuation, Connector' Category http://www.fileformat.info/info/unicode/category/Pc/list.htm

More Related