Reguläre Ausdrücke Stephan Baldes 4.11.2014.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Bonn-to-code.net Keine Angst vor Regulären Ausdrücken Martin Winkler
Mein Stundenplan.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Alternativen und Muster. Alternativen Gegeben ist eine Tabelle in der ein Attribut der Tabelle Buecher Gruppe genannt wurde. So gibt es unter anderem.
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Dynamische Webseiten mit PHP
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
Programmierkurs JAVA zusätzliche, ergänzende Lehrveranstaltung
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Bestimmung des ggT zweier Zahlen
© 2003 Pohlig Informatikgrundkurs (Pohlig-Häberle) 1 5.Was ist eine Syntax? – Ein bierseliger Bayer im Himmel 5.1 Syntax des frohlockenden Bayern Alois.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Treffpunkt.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
You need to use your mouse to see this presentation © Heidi Behrens.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Felder (Arrays) und Zeiger (Pointers) - Teil II Zeichen, Texte, String Matching; Mehrdimensionale Felder; kürzeste Wege.
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a Einführung in Reguläre Ausdrücke.
Feb 12Uli Finckh, Breitbrunn1 Orange Flagge. Feb 12Uli Finckh, Breitbrunn2 Anhang L 5.4 To alert boats that a race or sequence of races will begin soon,
Unterprogramme in JAVA
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
se_10_regulaere_ausdruecke.ppt1 Softwareengineering Reguläre Ausdrücke (regular expressions) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Sponge Bob Square Pants Im Café. Snacks WALT: Order food and drink from a menu and take part in a short role play. WILF: Greetings at the start of the.
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
Deutsch 1 G Stunde. Dienstag, der 13. November 2012 Deutsch 1, G Stunde Heute ist ein G- Tag Unit: Family & home Familie & Zuhause Question: Who / How.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Programmierungssprache PERL
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Variablen und Datentypen
Kapitel 4 Grammar INDEX 1.Ordinal Numbers 2.Relative Pronouns and Relative Clauses 3.Conditional Sentences 4.Posessive: Genitive Case.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Java Programme nur ein bisschen objektorientiert.
Besitzrechte. Datei- und Verzeichnis-Besitzer Dateien und Verzeichnisse gehören einem Benutzer und einer Gruppe Besitzer wird bei ls -l in der dritten.
Perl: pattern matching and regular expressions
JAVA lernen: Methoden.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Left Join, Right Join, Outer Join
Mit der Turtle Java Programmieren
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Mit Java die Turtle steuern
Cäsar-Verschlüsselung
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
 Präsentation transkript:

Reguläre Ausdrücke Stephan Baldes 4.11.2014

Reguläre Ausdrücke = intelligentes Suchen/Ersetzen 2. Beispiel E-Mail-Adressen Aufgabe: Alle Vorkommen von height=“…” ausgeben bzw. ersetzen.

Reguläre Ausdrücke Metazeichen Beschreibung Beispiel . Findet jedes Zeichen "Schmi.." Schmitt Schmidt Schmi5x | Oder "Schmidt|Schmiedt" Schmidt Schmiedt [abc] Findet a,b oder c "Schmi[dt][dt] " Schmidd Schmitd Schmidt [a-z] Findet einmal alle Zeichen von a bis z "[w-z]" w x y z () Gruppierung "(wort1|wort2)" wort1 wort2 \ Folgendes Metazeichen wird als normales Zeichen (Literal) interpretiert. "\." ^ Zeilenanfang "^anfang" Anfang $ Zeilenende "ende$" Dieser … hat ein Ende

Reguläre Ausdrücke Übung 1 "^wort" {'wort' at the start of a line} … "wort$" {'wort' at the end of a line} "^wort$" {lines containing only 'wort'} "\^s" {lines starting with '^s', "\" escapes the ^} "[Ww]ort" {search for 'wort' or 'wort'} "B[oO][bB]" {search for BOB, Bob, BOb or BoB } "^$" {search for blank lines} "[0-9][0-9]" {search for pairs of numeric digits}

Reguläre Ausdrücke Wiederholungsfaktoren Beschreibung Beispiel * Der vorstehende Ausdruck darf beliebig oft (auch keinmal) vorkommen. "0*[1-9]*" -> 05 011 0087 00 0002 12 + Der voranstehende Ausdruck muss mindestens einmal vorkommen, darf aber auch mehrfach vorkommen. "0+[1-9]+" -> 05 011 0087 0002 {min,max} Der voranstehende Ausdruck kommt mindestens min-mal und höchstens max-mal vor. "0{0,1}[1-9]{0,1}" -> 05 0 5 Eine Abkürzung für {0,1} ist ?. Vorsicht: *.txt bei Dateien entspricht dem regulären Ausdruck .*\.txt

Reguläre Ausdrücke Vordefinierte Ausdrücke \d digit eine Ziffer, also [0-9] \D no digit ein Zeichen, das keine Ziffer ist, also [^\d] \w word also [a-zA-Z_0-9] \W no word weder Buchstabe noch Zahl, also [^\w] \s space Leerzeiche \S non-space kein Leerzeichen

Reguläre Ausdrücke Beispiele "the .* (who|that)" Findet Relativ-Sätze im englischen Text. "([a-zA-Z]+)@([a-zA-Z]+)\.([a-zA-Z]{2,4})" Findet E-Mailadressen ohne Zahlen "^[01]*$" Findet alle Zeilen, die nur aus Nullen und Einsen bestehen.

Reguläre Ausdrücke Übung 2 "^From:" {list your mail} … "[a-zA-Z]" {any line with at least one letter} "[^a-zA-Z0-9]" {anything not a letter or number "[0-9]{3:5}-[0-9]{4:10}" {0681-84321, like phone numbers} "^.$" {lines with exactly one character} "\"*wort\"*" {'wort', with or without quotes} "^\." {any line that starts with a Period "."} "^\.[1-9]+[a-z]"file {line start with "." atleast one number and a letter} …

Testumgebungen Java Web import java.util.regex.*; public class RegularExpTest1 { public static void main(String[] args) { Pattern p = Pattern.compile("M(a|e)(y|i)er"); Matcher m = p.matcher("Mayer, Maier, Meyer"); while(m.find()) {System.out.println(m.group());} } Web http://regexpal.com/ http://regex101.com/ http://www.freeformatter.com/regex-tester.html

Matchen über mehrere Zeilen Problem: \n bzw. \r wird als Ende erkannt. Ausweg: Ergänze Parameter Pattern.MULTILINE Nutze [\\s\\S] anstatt . Nutze Non-greedy-Operator *? anstatt * import java.util.regex.*; public class RegularExpTest2 { public static void main(String[] args) { Pattern p = Pattern.compile("a[\\s\\S]*?b",Pattern.MULTILINE); Matcher m = p.matcher("a\nab\nabc"); if(m.find()) {System.out.println(m.group());} } 10 10

Ersetzen von Ergebnissen i-te Gruppe wird durch $i ersetzt Beispiel Wörter tauschen: a-b -> b-a Suchausdruck: "(.)-(.)" Ersatzausdruck: "$2-$1“ import java.util.regex.*; public class RegularExpTest3 { public static void main(String[] args) { String search="(.)-(.)"; String replace="$2-$1"; String input="a-b"; System.out.println(input); //a-b input = input.replaceAll(search,replace); System.out.println(input); //b-a }