Heiko Baur 10. November 2006

Größe: px
Ab Seite anzeigen:

Download "Heiko Baur 10. November 2006"

Transkript

1 Reguläre Ausdrücke Heiko Baur November / 60

2 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Teil I Einleitung 2 / 60

3 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Definition Wikipedia: Reguläre Ausdrücke... dienen der Beschreibung einer Familie von formalen Sprachen, d.h. sie beschreiben (Unter-)Mengen von Zeichenketten. Sie gehören somit zur theoretischen Informatik. Definition Linuxfibel : Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Suchmuster in einer Eingabe zu finden.??? 3 / 60

4 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Definition Wikipedia: Reguläre Ausdrücke... dienen der Beschreibung einer Familie von formalen Sprachen, d.h. sie beschreiben (Unter-)Mengen von Zeichenketten. Sie gehören somit zur theoretischen Informatik. Definition Linuxfibel : Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Suchmuster in einer Eingabe zu finden.??? 3 / 60

5 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Definition Wikipedia: Reguläre Ausdrücke... dienen der Beschreibung einer Familie von formalen Sprachen, d.h. sie beschreiben (Unter-)Mengen von Zeichenketten. Sie gehören somit zur theoretischen Informatik. Definition Linuxfibel : Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Suchmuster in einer Eingabe zu finden.??? 3 / 60

6 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Definition Wikipedia: Reguläre Ausdrücke... dienen der Beschreibung einer Familie von formalen Sprachen, d.h. sie beschreiben (Unter-)Mengen von Zeichenketten. Sie gehören somit zur theoretischen Informatik. Definition Linuxfibel : Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Suchmuster in einer Eingabe zu finden.??? 3 / 60

7 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Definition Wikipedia: Reguläre Ausdrücke... dienen der Beschreibung einer Familie von formalen Sprachen, d.h. sie beschreiben (Unter-)Mengen von Zeichenketten. Sie gehören somit zur theoretischen Informatik. Definition Linuxfibel : Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Suchmuster in einer Eingabe zu finden.??? 3 / 60

8 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 1 (DOS) Dos Wildcards mit * a : C:\WINDOWS\dir e*.exe : explorer.exe 1 Datei(en) Bytes 0 Verzeichnis(se), Bytes frei a DOS Wildcards sind zwar keine regulären Ausdrücke, jedoch ist es das Einzige was unter Windows Ihnen nahe kommt. 4 / 60

9 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 2 (DOS) Dos Wildcards mit? : C:\WINDOWS\dir twunk_??.exe : twunk16_exe : twunk32_exe 2 Datei(en) Bytes 0 Verzeichnis(se), Bytes frei 5 / 60

10 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 3 Wie kann man Dateien anzeigen die einen Namen von exakt 5 Zeichen haben? Lösung ls grep ^...$ 0.log Debug Fonts Media Tasks ehome Wobei der ls Befehl unter LINUX dem dir Befehl unter Dos entspricht. 6 / 60

11 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 3 Wie kann man Dateien anzeigen die einen Namen von exakt 5 Zeichen haben? Lösung ls grep ^...$ 0.log Debug Fonts Media Tasks ehome Wobei der ls Befehl unter LINUX dem dir Befehl unter Dos entspricht. 6 / 60

12 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 4 Wie kann man Dateien anzeigen die einen Namen von exakt 5 Zeichen haben und mit einem Großbuchstaben beginnen? Lösung ls grep ^[A-Z]...$ Debug Fonts Media Tasks [A-Z] gibt hierbei eine sog. Zeichenklasse an, die alle Großbuchstaben repräsentiert. 7 / 60

13 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Beispiel 4 Wie kann man Dateien anzeigen die einen Namen von exakt 5 Zeichen haben und mit einem Großbuchstaben beginnen? Lösung ls grep ^[A-Z]...$ Debug Fonts Media Tasks [A-Z] gibt hierbei eine sog. Zeichenklasse an, die alle Großbuchstaben repräsentiert. 7 / 60

14 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Reguläre Ausdrücke sind: Beschreibungssprache für Texte sie sind in vielen UNIX Tools und Editoren fest integriert a sind ähnlich den DOS Wildcards jedoch leistungsfähiger sind ein sehr Leistungsfähiges Werkzeug, wenn man das richtige Problem hat! a die bekanntesten Vertreter sind: grep, sed, awk, vi und perl. Jedoch ist es durchaus auch unter Windows üblich Editoren mit regexp basierten Suchmechanismen auszustatten. 8 / 60

15 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Reguläre Ausdrücke sind: Beschreibungssprache für Texte sie sind in vielen UNIX Tools und Editoren fest integriert a sind ähnlich den DOS Wildcards jedoch leistungsfähiger sind ein sehr Leistungsfähiges Werkzeug, wenn man das richtige Problem hat! a die bekanntesten Vertreter sind: grep, sed, awk, vi und perl. Jedoch ist es durchaus auch unter Windows üblich Editoren mit regexp basierten Suchmechanismen auszustatten. 8 / 60

16 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Reguläre Ausdrücke sind: Beschreibungssprache für Texte sie sind in vielen UNIX Tools und Editoren fest integriert a sind ähnlich den DOS Wildcards jedoch leistungsfähiger sind ein sehr Leistungsfähiges Werkzeug, wenn man das richtige Problem hat! a die bekanntesten Vertreter sind: grep, sed, awk, vi und perl. Jedoch ist es durchaus auch unter Windows üblich Editoren mit regexp basierten Suchmechanismen auszustatten. 8 / 60

17 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Reguläre Ausdrücke sind: Beschreibungssprache für Texte sie sind in vielen UNIX Tools und Editoren fest integriert a sind ähnlich den DOS Wildcards jedoch leistungsfähiger sind ein sehr Leistungsfähiges Werkzeug, wenn man das richtige Problem hat! a die bekanntesten Vertreter sind: grep, sed, awk, vi und perl. Jedoch ist es durchaus auch unter Windows üblich Editoren mit regexp basierten Suchmechanismen auszustatten. 8 / 60

18 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Was sind reguläre Ausdrücke? Reguläre Ausdrücke sind: Beschreibungssprache für Texte sie sind in vielen UNIX Tools und Editoren fest integriert a sind ähnlich den DOS Wildcards jedoch leistungsfähiger sind ein sehr Leistungsfähiges Werkzeug, wenn man das richtige Problem hat! a die bekanntesten Vertreter sind: grep, sed, awk, vi und perl. Jedoch ist es durchaus auch unter Windows üblich Editoren mit regexp basierten Suchmechanismen auszustatten. 8 / 60

19 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Teil II Traditionelle Syntax 9 / 60

20 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

21 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

22 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

23 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

24 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

25 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp I/II). Match auf ein beliebiges Zeichen. [ ] Passt auf ein beliebiges Zeichen das in der Klammer aufgelistet ist. So führt [a c] zu einem Treffer bei a, b und c jedoch nicht bei e ( für Range). [^] Passt auf alle Zeichen die nicht in der Klammer stehen. So führt [^abc] zu einem Treffer bei e, f und g jedoch passt nicht bei a, b und c. ˆ Kennzeichnet den Anfang einer Zeile. $ Platzhalter für das Ende einer Zeile. () Markiert einen Unterausdruck. Wird verwendet um Textteile innerhalb eines Ausdrucks zu markieren. 10 / 60

26 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp II/II) \n Wobei n eine Zahl von ist. Wird ersetzt durch den n ten adressierten Unterausdruck. So passt (..)\1 auf abab, z1z1 aber nicht auf aabb Folgt ein auf ein einzelnes Zeichen oder Zeichenklasse passt der Ausdruck auf 0 oder n Kopien des Ausdrucks. So passt [abc] auf, a, aa, aabb und abccba. {x, y} Passt x bis y mal auf voriges Zeichen, Block oder Zeichenklasse. So passt b{2, 4} auf bb, bbb und bbbb jedoch nicht auf bbbbb. \c Backslash ist die escape Sequenz der regulären Ausdrücke. So erzeugt z.b. ein \$ ein Dollar Zeichen. 11 / 60

27 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp II/II) \n Wobei n eine Zahl von ist. Wird ersetzt durch den n ten adressierten Unterausdruck. So passt (..)\1 auf abab, z1z1 aber nicht auf aabb Folgt ein auf ein einzelnes Zeichen oder Zeichenklasse passt der Ausdruck auf 0 oder n Kopien des Ausdrucks. So passt [abc] auf, a, aa, aabb und abccba. {x, y} Passt x bis y mal auf voriges Zeichen, Block oder Zeichenklasse. So passt b{2, 4} auf bb, bbb und bbbb jedoch nicht auf bbbbb. \c Backslash ist die escape Sequenz der regulären Ausdrücke. So erzeugt z.b. ein \$ ein Dollar Zeichen. 11 / 60

28 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp II/II) \n Wobei n eine Zahl von ist. Wird ersetzt durch den n ten adressierten Unterausdruck. So passt (..)\1 auf abab, z1z1 aber nicht auf aabb Folgt ein auf ein einzelnes Zeichen oder Zeichenklasse passt der Ausdruck auf 0 oder n Kopien des Ausdrucks. So passt [abc] auf, a, aa, aabb und abccba. {x, y} Passt x bis y mal auf voriges Zeichen, Block oder Zeichenklasse. So passt b{2, 4} auf bb, bbb und bbbb jedoch nicht auf bbbbb. \c Backslash ist die escape Sequenz der regulären Ausdrücke. So erzeugt z.b. ein \$ ein Dollar Zeichen. 11 / 60

29 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Syntaktische Sprachelemente (traditionelle UNIX regexp II/II) \n Wobei n eine Zahl von ist. Wird ersetzt durch den n ten adressierten Unterausdruck. So passt (..)\1 auf abab, z1z1 aber nicht auf aabb Folgt ein auf ein einzelnes Zeichen oder Zeichenklasse passt der Ausdruck auf 0 oder n Kopien des Ausdrucks. So passt [abc] auf, a, aa, aabb und abccba. {x, y} Passt x bis y mal auf voriges Zeichen, Block oder Zeichenklasse. So passt b{2, 4} auf bb, bbb und bbbb jedoch nicht auf bbbbb. \c Backslash ist die escape Sequenz der regulären Ausdrücke. So erzeugt z.b. ein \$ ein Dollar Zeichen. 11 / 60

30 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 1 [a-z]* 12 / 60

31 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 1 [a-z]* Lösung passt auf alle Kleinbuchstaben, wie z.b. abcdefgh 12 / 60

32 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 2 [01]* 13 / 60

33 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 2 [01]* Lösung Passt auf alle binären Werte, wie z.b / 60

34 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 3 ^$ 14 / 60

35 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 3 ^$ Lösung Passt auf einen Leerstring 14 / 60

36 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 4.*\.[dD][oO][cC]$ 15 / 60

37 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 4.*\.[dD][oO][cC]$ Lösung Passt auf Dateien mit der Endung *.doc. z.b. auf: Intro.doc Bericht.Doc INHALT.DOC 15 / 60

38 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 5 0x[A-Fa-f0-9]* 16 / 60

39 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 5 0x[A-Fa-f0-9]* Lösung Passt auf alle hexadezimalen Werte, wie z.b. 0xFFFF 0x1234 0xab 0xaF03DE 16 / 60

40 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 6 0x[A-Fa-f0-9]{1,4} 17 / 60

41 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 6 0x[A-Fa-f0-9]{1,4} Lösung Passt auf max 4 stellige hexadezimalen Werte, wie z.b. 0xFFFF 0x1234 0xab 17 / 60

42 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 7 ([a-za-z0-9]*)@\1\.de 18 / 60

43 traditionelle Sprachelemente traditionelle Sprachelemente Beispiele Beispiele für traditionelle UNIX regexp Beispiel 7 ([a-za-z0-9]*)@\1\.de Lösung Passt auf Adresses des folgenden Typs: jedoch nicht auf: domain@domain.de, user@user.de, user@domain.de 18 / 60

44 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Teil III POSIX Spracherweiterungen 19 / 60

45 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Syntaktische Sprachelemente (POSIX Erweiterungen I/II) Symbol konventionell Bedeutung [:upper:] [A-Z] Grossbuchstaben [:lower:] [a-z] Kleinbuchstaben [:alpha:] [a-za-z] Gross- und Kleinbuchstaben [:alnum:] [a-za-z0-9] alle alphanumerische Zeichen [:digit:] [0-9] Zahlen [:xdigit:] [0-9a-fA-F] Hexadezimale Zeichen [:punct:] [!?.,:] Interpunktionssymbole [:blanc:] [ \t] Leerzeichen und Tabulator [:space:] [ \t\n\r\f\v] Whitespaces [:graph:] [^ \t\n\r\f\v] alle nicht Whitespace Characters [:print:] [^\t\n\r\f\v] wie [:graph:] jedoch ohne space 20 / 60

46 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Syntaktische Sprachelemente (POSIX Erweiterungen II/II) + Passt 1...n mal auf die vorangestellte Zeichen(klasse). So passt 12+ auf 12 und 122, jedoch nicht auf 11.? Passt mal auf das vorangestellte Zeichen / Zeichenklasse. So passt 12? auf 1 und auf 12, jedoch nicht auf 11. Realisiert Alternativen. So passt abc def auf abc und def. 21 / 60

47 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Syntaktische Sprachelemente (POSIX Erweiterungen II/II) + Passt 1...n mal auf die vorangestellte Zeichen(klasse). So passt 12+ auf 12 und 122, jedoch nicht auf 11.? Passt mal auf das vorangestellte Zeichen / Zeichenklasse. So passt 12? auf 1 und auf 12, jedoch nicht auf 11. Realisiert Alternativen. So passt abc def auf abc und def. 21 / 60

48 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Syntaktische Sprachelemente (POSIX Erweiterungen II/II) + Passt 1...n mal auf die vorangestellte Zeichen(klasse). So passt 12+ auf 12 und 122, jedoch nicht auf 11.? Passt mal auf das vorangestellte Zeichen / Zeichenklasse. So passt 12? auf 1 und auf 12, jedoch nicht auf 11. Realisiert Alternativen. So passt abc def auf abc und def. 21 / 60

49 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 1 [:upper:]* 22 / 60

50 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 1 [:upper:]* Lösung Passt auf Großbuchstaben ABCDEFGHI 22 / 60

51 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 2 [[:upper:][:lower:][:digit:]]* 23 / 60

52 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 2 [[:upper:][:lower:][:digit:]]* Lösung Passt auf Groß/kleinbuchstaben mit Zahlen ABCabc / 60

53 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 3 [a-za-z ]+[a-za-z0-9 ]* 24 / 60

54 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 3 [a-za-z ]+[a-za-z0-9 ]* Lösung Passt auf Variablenbezeichner (dürfen nicht mit einer Zahl beginnen). So z.b.: Jedoch nicht auf m aimymember4 getarray 1234varname 24 / 60

55 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 4 my(optional)?name 25 / 60

56 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 4 my(optional)?name Lösung Passt auf: und myname myoptionalname 25 / 60

57 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 4 (rot grün blau)käppchen 26 / 60

58 POSIX Spracherweiterungen Syntax POSIX Spracherweiterungen Beispiele Beispiele für POSIX Erweiterungen Beispiel 4 (rot grün blau)käppchen Lösung Passt auf: rotkäppchen grünkäppchen blaukäppchen 26 / 60

59 Perl Spracherweiterungen - Syntax Teil IV PERL Spracherweiterungen 27 / 60

60 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl POSIX Erweiterungen) Symbol [:^upper:] [:^lower:] [:^alpha:] [:^alnum:] [:^digit:] [:^xdigit:] [:^punct:] [:^blanc:] [:^space:] Bedeutung [^A-Z] [^a-z] [^a-za-z] [^a-za-z0-9] [^0-9] [^0-9a-fA-F] [^!?.,:] [^\t] [^\t\n\r\f\v] 28 / 60

61 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl Erweiterungen I/V - Perl Zeichenklassen) Symbol Beschreibung \NNN Ein oktal adressiertes Zeichen \A Passt am Anfang des Textes (wie ˆ). \b Wortgrenze \B nicht Wortgrenze (Länge 0!) \cx Ein benanntes Steuerzeichen wie z.b. \cc für STRG+C oder \cx für STRG+X... \C passt auf ein byte (wie der C Datentyp char 1 ) \d Ziffer (wie [0-9]) \D nicht Ziffer ([ˆ0-9]) \N{NAME} Passt auf ein benanntes Zeichen. So passt z.b. \N{greek:Sigma} auf Σ 1 Vorsicht bei UTF8! 29 / 60

62 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl Erweiterungen II/V - Perl Zeichenklassen) \p{eigenschaft} Passt auf alle Zeichen mit der benannten Eigenschaft \P{Eigenschaft} Passt auf alle Zeichen ohne diese Eigenschaft. \s Whitespaces ([ \t\n\r\f]) \S [ˆ \t\n\r\f] alle nicht Whitespaces \w Wortzeichen ([a-za-z0-9 ] - mit Unterstrich!) \W Alle nicht Wortzeichen ([^a-za-z0-9 ]) \x{abcde} Maskiert ein hexadezimal angegebenes Zeichen \X Passt auf ein Unicode Zeichen \z Wahr am Ende eines Strings (wie $) \Z Wahr am Ende eines Strings gzw. vor optionalem NL 30 / 60

63 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl Erweiterungen III/V - Perl Quantifizierer) {MIN,MAX}? Wie {MIN,MAX}, passt jedoch minimal. {MIN,} Wie {MIN,MAX}, jedoch obere Grenze offen. {ANZAHL} Vorangestellter Ausdruck muss ANZAHL mal vorhanden sein {ANZAHL}? Wie {ANZAHL}?, passt jedoch minimal *? Wie *, passt jedoch minimal (entspricht {0,}?)?? Wie?, jedoch minimal (entspricht {0,1}?) 31 / 60

64 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl Erweiterungen IV/V - erweiterte Regex Sequenzen) (?#...) Kommentare innerhalb regexp (?:...) Gruppenbildende (Cluster bildende Klammern) kein Festhalten (?imsx-imsx) Pattern modifizieren aktivieren, deaktivieren (?imsx-imsx:...) Gruppierende (Cluster-bildende) Klammern plus Modifier (?=...) Wahr wenn Lookahead Zusicherung zutrifft (?!...) Wahr wenn Lookahead Zusicherung nicht zutrifft (?<=...) Wahr wenn Lookbehind Zusicherung zutrifft (?<!...) Wahr wenn Lookbehind Zusicherung nicht zutrifft 32 / 60

65 Perl Spracherweiterungen - Syntax Syntaktische Sprachelemente (Perl Erweiterungen V/V - erweiterte Regex Sequenzen) (?>...) Submuster ohne Backtracking erkennen (?{...}) Eingebetteten Perl code ausführen (??{...}) Regex aus eingebettetem Perl code erkennen (?(...)......) if... then... else (?(...)...) if... then 33 / 60

66 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 1 \A\Z 34 / 60

67 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 1 \A\Z Lösung Passt auf einen Leerstring (\A entspricht dem Anfang des Textes, \Z dem Ende - wie ^ und $) 34 / 60

68 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 2 \b.. a a \b kennzeichnet die Wortgrenze 35 / 60

69 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 2 \b.. Lösung Passt auf die ersten zwei Buchstaben an Wortanfang. Wird z.b. Hallo an den regulären Ausdruck übergeben, so passt der Ausdruck auf Ha. \b selber hat die Länge / 60

70 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 3 \B[a-z]* a a \B kennzeichnet die nicht Wortgrenze 36 / 60

71 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 3 \B[a-z]* Lösung Wird z.b hallo als String dem Muster übergeben, so passt das Muster auf allo. \B passt also immer wenn das Zeichen nicht an der Wortgrenze steht. \B selbst hat immer die Länge 0! 36 / 60

72 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 4 \d{2}:\d{2}:\d{2} a a \d maskiert eine Ziffer 37 / 60

73 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 4 \d{2}:\d{2}:\d{2} Lösung Maskiert eine Uhrzeit im Format dd:dd:dd. Wie z.b.: Aber auch ungültige Zeiten wie: 12:32:10 23:54:01 89:99:71 37 / 60

74 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 5 ^\p{isascii}*$ 38 / 60

75 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 5 ^\p{isascii}*$ Lösung Dieser Ausdruck verwendet die benannte Eigenschaft IsASCII. Diese ist wahr für alle ASCII Zeichen und entspricht der Zeichenklasse [\x00-\x7f]. Somit passt der Ausdruck auf: Aber er passt z.b. nicht auf abcdef Text mit Sonderzeichen äüößäüö 38 / 60

76 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 6 ^\P{IsASCII}*$ 39 / 60

77 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 6 ^\P{IsASCII}*$ Lösung Im Gegensatz zum vorigen Beispiel (^\p{isascii}*$) wird hier \P verwendet. D.h. der Audruck passt nur auf nicht ASCII Zeichen. So passt z.b.: wunderbar! äüößäüö 39 / 60

78 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 7 ab(?# dies ist ein Kommentar)cd 40 / 60

79 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 7 ab(?# dies ist ein Kommentar)cd Lösung Alles was zwischen (?# und ) steht wird ignoriert also passt der Ausdruck nur auf abcd. 40 / 60

80 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 8 (bb [^b]{2}) 41 / 60

81 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 8 (bb [^b]{2}) Lösung William Shakespeare [Hamlet] To be or not to be, / 60

82 Perl Spracherweiterungen - Syntax Beispiele für Perl Erweiterungen Beispiel 8 (bb [^b]{2})... gibt s übrigends auch als T-Shirt 41 / 60

83 reguläre Ausdrücke und Unicode Teil V Reguläre Ausdrücke und Unicode 42 / 60

84 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ursprünglich unterstützten reguläre Ausdrücke nur die ASCII Zeichencodierung. Viele moderne regexp Implementierungen sind jedoch in der Lage Unicode zu verarbeiten. Normalerweise differenzieren die Engines nicht, welchen Zeichensatz man verwendet, jedoch sind diese auch nicht ganz kompatibel. Ein Punkt ist, dass eine spezielle Kodierung erwartet wird. Alle Kommandozeilen Tools erwarten normalerweise UTF8 als Kodierung. Verwendet man jedoch eine regexp Bibliothek erwartet so manche eine andere Unicode Kodierung wie z.b. UTF16, UTF32 oder das obsolete UCS2. 43 / 60

85 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ursprünglich unterstützten reguläre Ausdrücke nur die ASCII Zeichencodierung. Viele moderne regexp Implementierungen sind jedoch in der Lage Unicode zu verarbeiten. Normalerweise differenzieren die Engines nicht, welchen Zeichensatz man verwendet, jedoch sind diese auch nicht ganz kompatibel. Ein Punkt ist, dass eine spezielle Kodierung erwartet wird. Alle Kommandozeilen Tools erwarten normalerweise UTF8 als Kodierung. Verwendet man jedoch eine regexp Bibliothek erwartet so manche eine andere Unicode Kodierung wie z.b. UTF16, UTF32 oder das obsolete UCS2. 43 / 60

86 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ursprünglich unterstützten reguläre Ausdrücke nur die ASCII Zeichencodierung. Viele moderne regexp Implementierungen sind jedoch in der Lage Unicode zu verarbeiten. Normalerweise differenzieren die Engines nicht, welchen Zeichensatz man verwendet, jedoch sind diese auch nicht ganz kompatibel. Ein Punkt ist, dass eine spezielle Kodierung erwartet wird. Alle Kommandozeilen Tools erwarten normalerweise UTF8 als Kodierung. Verwendet man jedoch eine regexp Bibliothek erwartet so manche eine andere Unicode Kodierung wie z.b. UTF16, UTF32 oder das obsolete UCS2. 43 / 60

87 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ein weiterer Stolperstein besteht darin, dass viele Engines nur einen Teil der Kodierung unterstützen. D.h. viele Bibliotheken haben nur einen Adressraum von 16 Bit, obwohl die Norm 21 Bits Definiert. Eine inkompatibilität besteht darin, wie ASCII orientierte Ausdrücke auf Unicode abgebildet werden. So lassen einige Implementierungen nur Ranges zu, die innerhalb ASCII liegen ([0x00,0x7F]). Ein weiteres Problem ist das case insensitive Flag. Einige Implementierungen haben z.b. zwei verschiedene Parameter für ASCII und Unicode. Auch welche Zeichen zu den POSIX Erweiterungen gehören variiert 2. 2 z.b. die POSIX Zeichenklassen [:upper:] und [:lower:] 44 / 60

88 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ein weiterer Stolperstein besteht darin, dass viele Engines nur einen Teil der Kodierung unterstützen. D.h. viele Bibliotheken haben nur einen Adressraum von 16 Bit, obwohl die Norm 21 Bits Definiert. Eine inkompatibilität besteht darin, wie ASCII orientierte Ausdrücke auf Unicode abgebildet werden. So lassen einige Implementierungen nur Ranges zu, die innerhalb ASCII liegen ([0x00,0x7F]). Ein weiteres Problem ist das case insensitive Flag. Einige Implementierungen haben z.b. zwei verschiedene Parameter für ASCII und Unicode. Auch welche Zeichen zu den POSIX Erweiterungen gehören variiert 2. 2 z.b. die POSIX Zeichenklassen [:upper:] und [:lower:] 44 / 60

89 reguläre Ausdrücke und Unicode reguläre Ausdrücke und Unicode Ein weiterer Stolperstein besteht darin, dass viele Engines nur einen Teil der Kodierung unterstützen. D.h. viele Bibliotheken haben nur einen Adressraum von 16 Bit, obwohl die Norm 21 Bits Definiert. Eine inkompatibilität besteht darin, wie ASCII orientierte Ausdrücke auf Unicode abgebildet werden. So lassen einige Implementierungen nur Ranges zu, die innerhalb ASCII liegen ([0x00,0x7F]). Ein weiteres Problem ist das case insensitive Flag. Einige Implementierungen haben z.b. zwei verschiedene Parameter für ASCII und Unicode. Auch welche Zeichen zu den POSIX Erweiterungen gehören variiert 2. 2 z.b. die POSIX Zeichenklassen [:upper:] und [:lower:] 44 / 60

90 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Teil VI Reguläre Ausdrücke im praktischen Einsatz 45 / 60

91 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 1 im Ultraedit im Suchen Menü (Windows) 46 / 60

92 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 1 im Ultraedit im Suchen Menü (Windows) 46 / 60

93 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 1 im Ultraedit im Datei Suchen Menü (Windows) 46 / 60

94 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 1 im Ultraedit im Datei Suchen Menü (Windows) 46 / 60

95 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 1 syntax coloring für ultraedit (wordfile.txt) 46 / 60

96 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Windows Editoren und reguläre Ausdrücke 2 im Visual Studio im Suchen Menü (Windows) 46 / 60

97 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 2 im Visual Studio im Suchen Menü (Windows) 46 / 60

98 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 2 im Visual Studio im Suchen Menü (Windows) 46 / 60

99 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 3 im nedit (Linux) 46 / 60

100 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 3 im nedit (Linux) 46 / 60

101 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 4 in kwite / kdevelop (Linux) 46 / 60

102 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Linux Editoren reguläre Ausdrücke 4 in kwite / kdevelop (Linux) 46 / 60

103 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Editoren reguläre Ausdrücke 4 in kwite / kdevelop (Linux) 46 / 60

104 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke 1 im Ultraedit (Windows) 2 im Visual Studio (Windows) 3 im nedit (Linux) 4 in kwite (Linux) 5 in kdevelop (Linux) / 60

105 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ursprünglich als Teil von awk entwickelt, sind die reguläre Ausdrücke inzwischen in allen Programmiersprachen verfügbar. Sei es fest in den Sprachinterpreter integriert (wie z.b. in Perl), als Basisbibliothek wie in Java, PHP und.net oder als externe Bibliothek wie z.b. in C oder C / 60

106 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ursprünglich als Teil von awk entwickelt, sind die reguläre Ausdrücke inzwischen in allen Programmiersprachen verfügbar. Sei es fest in den Sprachinterpreter integriert (wie z.b. in Perl), als Basisbibliothek wie in Java, PHP und.net oder als externe Bibliothek wie z.b. in C oder C / 60

107 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ursprünglich als Teil von awk entwickelt, sind die reguläre Ausdrücke inzwischen in allen Programmiersprachen verfügbar. Sei es fest in den Sprachinterpreter integriert (wie z.b. in Perl), als Basisbibliothek wie in Java, PHP und.net oder als externe Bibliothek wie z.b. in C oder C / 60

108 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ursprünglich als Teil von awk entwickelt, sind die reguläre Ausdrücke inzwischen in allen Programmiersprachen verfügbar. Sei es fest in den Sprachinterpreter integriert (wie z.b. in Perl), als Basisbibliothek wie in Java, PHP und.net oder als externe Bibliothek wie z.b. in C oder C / 60

109 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke C und reguläre Ausdrücke (GNU-C library) C Beispiel (mit GNU-C library) #include <regex.h> #include <stdio.h> int main() { const char* string = "-13, +45,78, 42"; char azbuf[256] = {0}; regex_t trex; regmatch_t pmatch; if (regcomp( &trex, "[+-]?[0-9]+", REG_EXTENDED )) { return -1; } while ( regexec(&trex,string,1,&pmatch,0) == 0 ) { strncpy(azbuf,&string[pmatch.rm_so], pmatch.rm_eo-pmatch.rm_so); azbuf[pmatch.rm_eo-pmatch.rm_so]= \0 ; printf("%s\n",azbuf); string+=pmatch.rm_eo; } regfree(&trex); return 0; } 48 / 60

110 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke C++ und reguläre Ausdrücke (lib-boost) C++ Beispiel (mit boost library) #include <boost/regex.hpp> #include <iostream> using namespace std; using namespace boost; int main() { regex rex("[+-]?[0-9]+"); const char* pztext = "-13, +45,78, 42"; cmatch results; while(regex_search(pztext, results, rex)){ cout << results << "\n"; pztext=&(strstr(pztext,results.str().c_str())[results.str().length()]); } return 0; } 49 / 60

111 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke C#.NET und reguläre Ausdrücke (System.Text.RegularExpressions) C#.NET Beispiel using System; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { String meintext = "-13, +45,78, 42"; Regex r = new Regex("[+-]?[0-9]+"); MatchCollection collection = r.matches(meintext); foreach (Match m in collection) { Console.WriteLine(meinText.Substring( m.index, m.length)); } } } } 50 / 60

112 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke J#.NET und reguläre Ausdrücke (System.Text.RegularExpressions) J#.NET Beispiel package ConsoleApplication1; import System.Text.RegularExpressions.*; import System.*; public class Program { public static void main(string[] args) { String meintext = "-13, +45,78, 42"; Regex r = new Regex("[+-]?[0-9]+"); MatchCollection collection = r.matches(meintext); for (int iiter = 0; iiter < collection.get_count();iiter++ ) { Match m = collection.get_item(iiter); Console.WriteLine(meinText.Substring( m.get_index(), m.get_length())); } } } 51 / 60

113 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke C++.NET (CLR) und reguläre Ausdrücke (System.Text.RegularExpressions) C++.NET (CLR) Beispiel #include "stdafx.h" using namespace System; using namespace System::Text::RegularExpressions; int main(array<system::string ^> ^args) { String^ meintext(l"-13, +45,78, 42"); Regex r(l"[+-]?[0-9]+"); MatchCollection^ collection = r.matches(meintext); for (int iiter = 0;iIter<collection->Count;iIter++) { Match^ m = (*collection)[iiter]; Console::WriteLine(meinText->Substring( m->index,m->length)); } return 0; } 52 / 60

114 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Visual Basic.NET und reguläre Ausdrücke (System.Text.RegularExpressions) Visual Basic.NET Beispiel Imports System.Text.RegularExpressions Module Module1 Sub Main() Dim meintext As String = New String("-13, +45,78, 42") Dim r As Regex = New Regex("[+-]?[0-9]+") Dim collection As MatchCollection = r.matches(meintext) Dim i As Integer i = 0 For Each m As Match In collection Console.Out.WriteLine(meinText.Substring(m.Index, m.length)) Next End Sub End Module 53 / 60

115 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Java und reguläre Ausdrücke (java.util.regex) Java Beispiel import java.util.regex; class RegExpTest { public static void Main(String[] args) { String meintext = "-13, +45,78, 42"; Pattern p = Pattern.compile( "[+-]?[0-9]+" ); Matcher m = p.match( meintext ); while (m.find()) { System.out.println( meintext.substring(m.start(),m.end())); } } } 54 / 60

116 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke AWK und reguläre Ausdrücke AWK Beispiel #!/bin/sh echo "-13, +45,78, 42" \ awk { split ($0,arr,/[, ]+/); for ( i in arr){ print arr[i]; } } 55 / 60

117 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke PHP und reguläre Ausdrücke (preg * Funktionen) PHP Beispiel <?php if ($len=preg_match_all("![+-]?[0-9]+!", "-13, +45,78, 42",$result)) { for ($iter=0;$iter<$len;$iter++){ echo $result[0][$iter]."\n"; } }?> 56 / 60

118 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Perl und reguläre Ausdrücke Perl Beispiel #!/usr/bin/perl for ("-13, +45,78, 42" ~= /[+-]?\d+/g){ print "$_\n" }; 57 / 60

119 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ruby und reguläre Ausdrücke Ruby Beispiel... and the winner is: Ruby Beispiel #!/usr/bin/ruby -13, +45,78, 42.scan(/([+-]?\d+)/){ m print m, "\n" } 58 / 60

120 Editoren reguläre Ausdrücke Programmiersprachen und reguläre Ausdrücke Ruby und reguläre Ausdrücke Ruby Beispiel... and the winner is: Ruby Beispiel #!/usr/bin/ruby -13, +45,78, 42.scan(/([+-]?\d+)/){ m print m, "\n" } 58 / 60

121 noch Fragen? 59 / 60

122 Danke für Ihre Aufmerksamkeit 60 / 60

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting Reguläre Ausdrücke Reguläre Ausdrücke beschreiben eine Menge von Zeichenfolgen und werden benutzt um m festzustellen, ob eine Zeichenkette Teil

Mehr

Proseminar UNIX Tools. Ferdinand Beyer

Proseminar UNIX Tools. Ferdinand Beyer Reguläre Ausdrücke Proseminar UNIX Tools Ferdinand Beyer Technische Universität München 08.11.2005 Ferdinand Beyer (TUM) Reguläre Ausdrücke 08.11.2005 1 / 39 Gliederung Allgemeines 1 Allgemeines 2 Notation

Mehr

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting POSIX POSIX POSIX ist ein UNIX-Standard, der bestimmte grundlegende Funktionen und Eigenschaften von UNIX-Systemen definiert. Dazu gehören auch

Mehr

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13 Webengineering Reguläre Ausdrücke Marcel Vilas 1 DHBW - Stuttgart 1 RegExp - Allgemein Muster, die eine Menge von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln beschreiben Werden oft als Suchmuster

Mehr

Java-Applikationen (Java-Programme)

Java-Applikationen (Java-Programme) Java-Applikationen (Java-Programme) Eine erste Applikation: 1 2 3 4 5 6 7 8 9 10 // Quelltext HalloWelt.java // Programm gibt den Text Hallo Welt aus public class HalloWelt public static void main(string[]

Mehr

/ Vortrag Unix-AG

/ Vortrag Unix-AG 16.6.2010 / Vortrag Unix-AG xkcd Fortsetzung... Grundlegendes 1 Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann. Diese

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Sebastian Harl. 03. Oktober 2008

Sebastian Harl. 03. Oktober 2008 Reguläre Ausdrücke Sebastian Harl LUSC Workshop Weekend 2008 03. Oktober 2008 (?:[a-z0-9!#$%& *+/=?^_ { }~-]+(?:\.[a-z0-9!#$%& *+/=?^_ { }~-]+ )* "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 3: Regular Expressions Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 3 Regular

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

UNIX Power Tools. Helferlein für den Alltag. Maximilian Haupt

UNIX Power Tools. Helferlein für den Alltag. Maximilian Haupt UNIX Power Tools Helferlein für den Alltag Maximilian Haupt mhaupt@cs.uni-magdeburg.de Fakultät für Informatik, Otto-von-Guericke-Universität Magdeburg Magdeburg, 28. Oktober 2008 1 Reguläre Ausdrücke

Mehr

Regular Expressions. Daniel Lutz Was ist eine Regular Expression?

Regular Expressions. Daniel Lutz Was ist eine Regular Expression? Regular Expressions Daniel Lutz 12.11.2003 1 Was ist eine Regular Expression? Ausdruck, der ein Textfragment beschreibt Eine Regular Expression passt zu einem Textfragment, wenn das Textfragment

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Programmierkurs Kapitel 4

Programmierkurs Kapitel 4 Kapitel 4 Dipl.-Wirt.-Inf. Stefan Fleischer Dipl.-Wirt.-Inf. Ulrich Wolffgang Komponente: Parser Interface für Parser entwickeln public interface IParser { public ArrayList parseemailaddresses(string

Mehr

Reguläre Ausdrücke Suchmuster, Pattern Matching

Reguläre Ausdrücke Suchmuster, Pattern Matching Suchmuster, Pattern Matching Ein oder mehrere Einzelzeichen in interner Variablen $_suchen: /e/ #liefert wahr, wenn $_ ein 'e' enthält. /aus/ #liefert wahr, wenn $_ 'aus' enthält. while { if (/e/)

Mehr

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split

Mehr

Elementare Unix-Befehle 11

Elementare Unix-Befehle 11 Elementare Unix-Befehle 11 beliebige Dateien vergleichen mit diff - diff datei1 datei2 listet die Unterschiede zwischen den beiden Dateien: d.h., welche Änderungen an den beiden Dateien ausgeführt werden

Mehr

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Gepufferte Eingabe und reguläre Ausdrücke 397

Gepufferte Eingabe und reguläre Ausdrücke 397 Gepufferte Eingabe und reguläre Ausdrücke 397 Gepufferte Ein- und Ausgabe ist sinnvoll, um die Zahl der Systemaufrufe zu reduzieren. Standardmäßig wird in C als Lösung hierfür die stdio verwendet. Frage:

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Gepufferte Eingabe und reguläre Ausdrücke 398

Gepufferte Eingabe und reguläre Ausdrücke 398 Gepufferte Eingabe und reguläre Ausdrücke 398 Gepufferte Ein- und Ausgabe ist sinnvoll, um die Zahl der Systemaufrufe zu reduzieren. Standardmäßig wird in C als Lösung hierfür die stdio verwendet. Frage:

Mehr

18.09.2010 / Software Freedom Day

18.09.2010 / Software Freedom Day 18.09.2010 / Software Freedom Day xkcd Fortsetzung... Grundlegendes Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann.

Mehr

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig Schritt für Schritt Reguläre Ausdrücke verstehen Einstieg in Reguläre Ausdrücke O REILLY Michael Fitzgerald Übersetzung von Thomas Demmig Inhalt Vorwort.... 1 Was ist ein regulärer Ausdruck?... 1 Ein Anfang

Mehr

Reguläre Ausdrücke IDE AUTUMN SCHOOL

Reguläre Ausdrücke IDE AUTUMN SCHOOL Reguläre Ausdrücke 1 Reguläre Ausdrücke Übersicht Einführung Grundlagen Währenddessen: Übungen 2 Was sind Reguläre Ausdrücke? Reguläre Ausdrücke sind Zeichenketten, die Mengen von Zeichenketten beschreiben.

Mehr

Aufruf des Compilers in der Kommandozeile und Ausführung des Programms:

Aufruf des Compilers in der Kommandozeile und Ausführung des Programms: PGdP Zusammenfassung Ludwig Stecher Blatt 1 Aufruf des Compilers in der Kommandozeile und Ausführung des Programms: javac Program.java java Program Der erste Schritt (das Kompilieren) wandelt den Java-Code

Mehr

Theoretische Informatik. Reguläre Sprachen und Automaten

Theoretische Informatik. Reguläre Sprachen und Automaten Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Reguläre Ausdrücke und PROSITE-Patterns Thomas Mauermeier 04.12.2018 Ludwig-Maximilians-Universität München Warum Reguläre Ausdrücke? Regulärer Ausdruck

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs Reguläre Ausdrücke Felix Döring, Felix Wittwer 14. November 2016 Python-Kurs Gliederung 1. Grundlagen 2. Matching Regeln Sonderzeichen Zusammengesetzte Regex Spezielle Sequenzen 3. Methoden 4. reqular

Mehr

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:

Mehr

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf raaf@badw.de Bayerische Akademie der Wissenschaften, IT-Referat Reguläre Ausdrücke engl. regular expressions, kurz: regex, regexp

Mehr

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Reguläre Ausdrücke. Michael Jäger. 4. April 2017 Reguläre Ausdrücke Michael Jäger 4. April 2017 Zeichenketten und Sprachen Ein Alphabet ist eine endliche Menge von Symbolen. Beispiele: 1. Σ 1 = {0, 1} 2. Σ 2 = {a, b, c, d, e, f, g, h, i, j, k, l, m,

Mehr

Reguläre Ausdrücke mit Java

Reguläre Ausdrücke mit Java Reguläre Ausdrücke mit Java Johannes Dyck, Thomas Schulz Projektseminar www.prominentpeople.info Gliederung 2 1. Grundlagen von regulären Ausdrücken 1. Aufbau 2. Zeichenklassen 3. Metazeichen 4. Quantoren

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten...

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten... Reguläre Ausdrücke Ferdinand Beyer Inhaltsverzeichnis 1 Allgemeines 2 1.1 Beschreibung............................. 2 1.2 Bezeichnungen............................ 2 1.3 Einsatzgebiete in UNIX-Tools....................

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3 Erste Programme 3.1 Übungsaufgabe Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das einen String einliest und testet,

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Wer

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

1.103 Regular Expressions - Reguläre Ausdrücke

1.103 Regular Expressions - Reguläre Ausdrücke Copyright ( ) 2009 by M.Peichl. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/de/

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Stream EDitor SED und Reguläre Ausdrücke

Stream EDitor SED und Reguläre Ausdrücke Stream EDitor SED und Reguläre Ausdrücke ExactCODE New Thinking Store 11. Mai 2006 Was ist SED? sed steht für Stream EDitor eine Variante des Unix Editors ed und arbeitet auf Streams keine interaktiven

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Übungen zur Vorlesung Wissenschaftliches Rechnen I Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Teil 2 Java-Beispiel: Unicode.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 16. Nov. 2015 2 Typumwandlung Cast-Operator 3 Unterschiedliche

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

» ASCII = American Standard Code for Information Interchange.» ASCII ist Standard in Windows und Unix (und Unix-Derivaten).» ASCII ist eigentlich ein

» ASCII = American Standard Code for Information Interchange.» ASCII ist Standard in Windows und Unix (und Unix-Derivaten).» ASCII ist eigentlich ein 1 2 » ASCII = American Standard Code for Information Interchange.» ASCII ist Standard in Windows und Unix (und Unix-Derivaten).» ASCII ist eigentlich ein 7-Bit-Zeichensatz, d. h. das erste Bit jedes Bytes

Mehr

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Programmieren Vorkurs

Programmieren Vorkurs Programmieren Vorkurs Input/Output, If, Bedingungen Thole Goesmann, 10.10.2018 Über mich Thole Goesmann Studiere Mathematik und Informatik HiWi am Institut für Anwendungssicherheit gewähltes Mitglied im

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Dateisystem 1, Suchen & Finden

Dateisystem 1, Suchen & Finden Dateisystem 1, Suchen & Finden Linux-Kurs der Unix-AG Benjamin Eberle 15. Juni 2016 ln ln ( link ) legt Verknüpfungen an, Verwendung wie cp ohne Optionen wird ein zweiter Name für die gleiche Datei erzeugt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char

Mehr

Dateisystem 2, Suchen & Finden

Dateisystem 2, Suchen & Finden Dateisystem 2, Suchen & Finden Linux-Kurs der Unix-AG Benjamin Eberle 15. Januar 2015 ln ln ( link ) legt Verknüpfungen an, Verwendung wie cp ohne Optionen wird ein zweiter Name für die gleiche Datei erzeugt

Mehr

Einführung in PERL 2 Reguläre Ausdrücke

Einführung in PERL 2 Reguläre Ausdrücke Einführung in PERL 2 Reguläre Ausdrücke BASIEREND AUF FOLIEN VON DR. H. ZINSMEISTER und dem Buch `Einführung in Perl (Lama Buch) von RL Schwartz&T Phoenix sowie hwp://de.sel[tml.org/perl/sprache/regexpr.htm

Mehr

Aktivitäten in C# /.NET umsetzen

Aktivitäten in C# /.NET umsetzen Aktivitäten in C# /.NET umsetzen Grundlagen von C# Dr. Beatrice Amrhein Überblick Grundlagen der C# Syntax Visual C# Express Einfache Abläufe umsetzen 2 Grundlagen von C# 3 Merkmale von C# C# besteht aus

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Typumwandlung Cast-Operator Teil 2 Java-Beispiel: Unicode.java Version: 16. Nov. 2015 Unterschiedliche Typen Typumwandlung: Übersicht Zuweisung x = y; Ausdruck

Mehr

3 Regular expressions

3 Regular expressions 3 Regular expressions Es gibt eine ganze Reihe von Unix-Werkzeugen, für deren Benutzung es sinnvoll oder gar wesentlich ist, dass man mit etwas umgehen kann, was als regular expression oder kurz Regex

Mehr

Reguläre Ausdrücke 1 / 10. Doing Web Apps. Reguläre Ausdrücke. Letzte Änderung: 2009-04-17 Version: 0.6 Copyright: 2005. Alle Rechte vorbehalten

Reguläre Ausdrücke 1 / 10. Doing Web Apps. Reguläre Ausdrücke. Letzte Änderung: 2009-04-17 Version: 0.6 Copyright: 2005. Alle Rechte vorbehalten 1 / 10 Doing Web Apps Reguläre Ausdrücke Autor: Rüdiger Marwein Letzte Änderung: 2009-04-17 Version: 0.6 Copyright: 2005. Alle Rechte vorbehalten Dieses Dokument darf mit Nennung des Autoren - frei vervielfältigt,

Mehr

Suchen & Ersetzen in umfangreichen Dokumentenbeständen

Suchen & Ersetzen in umfangreichen Dokumentenbeständen Suchen & Ersetzen in umfangreichen Dokumentenbeständen Dipl.-Math. Klaus Stolte Klaus.Stolte@tfk.de tekom-regionalgruppentreffen, München, 18.05.2010 Thematische Eingrenzung» Dokumentübergreifendes Suchen

Mehr

Reguläre Ausdrücke - eine Einführung -

Reguläre Ausdrücke - eine Einführung - Ziel Reguläre Ausdrücke - eine Einführung - Andreas Romeyke Leipzig, Oktober/November 2002 Diese Präsentation ist eine kurze Einführung in die Welt der regulären Ausdrücke mit Schwerpunkt Perl. Die Präsentation

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Digital Humanities: Übung 1

Digital Humanities: Übung 1 Digital Humanities: Übung 1 Suche mit Boolschen Operatoren und Regulären Ausdrücken Sven Büchel Jena Language & Information Engineering (JULIE) Lab Friedrich-Schiller-Universität Jena, Germany http://www.julielab.de

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

Mehr

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++ 1 EINFÜHRUNG PROGRAMMAUFBAU IN C++ Leitidee: Genaueres Verständnis der C++-Syntax an Hand von Syntaxdiagrammen Lexikalische Struktur von C++ Vereinbarungen: Definition / Deklaration Beispiele für Variablen-

Mehr

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz

Mehr