Reguläre Ausdrücke. AnPr

Größe: px
Ab Seite anzeigen:

Download "Reguläre Ausdrücke. AnPr"

Transkript

1 Name Klasse Datum 1 Allgemeines Reguläre Ausdrücke (engl. Regular Expressions) dienen dazu, Texte bzw. Textpassagen zu beschreiben, indem Texte als Mengen von Zeichen interpretiert werden und die Beschreibung einem theoretischen Ansatz auf Basis der Mengenlehre folgt. Aufgrund der Fähigkeit zu beschreiben folgen auch die wichtigsten Anwendungsgebiete von Regulären Ausdrücken, dem Filtern von Texten, dem Extrahieren und dem Ersetzen von Textfragmenten. Speziell unter UNIX werden Reguläre Ausdrücke gerne für Verarbeitungsskripte verwendet, da hier sehr einfach auf die Ausgaben von Batchprogrammen zugegriffen werden kann und mit Hilfe des Programms grep (global/regular expression/print) die gewünschten Inhalte gesucht werden können. Die Anwendung von Regulären Ausdrücken auf Texte erfolgt durch entsprechende Implementierungen, welche (leider) unterschiedliche Funktionsumfänge und Dialekte hervorgebracht haben. Am verbreitetsten ist PCRE (Perl Compatible Regular Expressions), welches sich an der Perl Implementierung orientiert. Weiterhin wird bei den Regulären Ausdrücken zwischen den grundlegenden (basic) und den erweiterten (extended) Regulären Ausdrücken unterschieden, wobei die Erweiterungen die ursprüngliche theoretische Basis der Mengenlehre sprengen. Als Beispiel sei hier die Rückwärtsreferenzen (backtracking) genannt, welche es ermöglichen auf bereits gefundene Textfragmente wiederum Reguläre Ausdrücke anzuwenden. Das hier vorliegende Dokument dient dazu, die wesentlichen Elemente von Regulären Ausdrücke verstehen zu lernen und eine Java Implementierung zur Anwendung und zum Üben von Regulären Ausdrücken zu realisieren. 2 Java Implementierung Java bietet in der Bibliothek javax.util.regex.* (siehe: bzw. docs/ books/ tutorial/essential/regex/index.html) die notwendigen Klassen und Methoden an, um Reguläre Ausdrücke anwenden zu können. Hierbei gibt es zwei wesentliche Klassen: Pattern: Dies ist eine Klasse, welche den Regulären Ausdruck kompiliert und somit mehrfach anwendbar macht, wobei die Anwendung durch den Machter durchgeführt wird. Alternativ kann ein Pattern auch direkt den Regulären Ausdruck anwenden, wobei dies bei mehrfacher Ausführung eine ungünstiger Performance mit sich bringt, da der Ausdruck bei jedem Match (Treffer) neu kompiliert wird. Matcher: Der Machter ist in der Lage ein kompiliertes Pattern anzuwenden und verschiedene komfortable Methoden (z.b.: Suchen, Ersetzen) abhängig von den Matches durchzuführen. Was: Anwendung von Regulären Ausdrücken Programmiersprache: Java Pattern p1 = Pattern.compile("u", Pattern.CASE_INSENSITIVE); Matcher m1 = p1.matcher("berufsschule"); String s1 = m1.replaceall("a"); Pattern p2 = Pattern.compile("[0-9][^0-9]*"); Matcher m2 = p2.matcher("8tung, ein Text"); boolean b2 = m2.matches(); Pattern p3 = Pattern.compile("\b\S*a\S*\b"); Matcher m3 = p3.matcher("peter Paul Mary"); while(m3.find()) { System.out.println(m3.group()); } Erklärung: Pattern p1 Pattern.compile( "u", Pattern. CASE_INSENSITIVE); Deklaration eines Pattern Objektes Compillierung der Expression und Erzeugung eines Patterns, wobei als zweiter Parameter die Flags angegeben sind. Diese werden als Bitmuster in einer int Variable codiert. ANPR_01_RegexInJava_v03.docx Seite 1

2 Was: Anwendung von Regulären Ausdrücken Programmiersprache: Java Matcher m1 Deklaration eines Matcher Objektes p1.matcher( "Berufsschule"); Anwendung der Expression auf den Text und Erzeugung eines Matcher Objektes. m1.replaceall("a"); Ersetzen jeder Fundstelle mit dem angegebenen String (hier a ). m2.matches(); Prüfung, ob der Ausdruck exakt matcht m3.find() Prüfung, ob das Pattern im Text gefunden wurde, incl. Positionierung eines Zeigers auf diese Fundstelle. m2.group(); Ausgabe der gefundenen Stelle, auf dem der aktuelle Zeiger steht. Programmierhinweis: Nutzung eines Matchers Aufgrund der komfortablen Methoden ist es prinzipiell sinnvoll einen Matcher zu verwenden. Bei einmaliger Prüfung, ob der Text der Expression entspricht kann jedoch auch folgende Methode verwendet werden: Pattern.matches("0-9][^0-9]*", "8tung, ein Text"); Wichtig ist jedoch, dass Matcher nicht Threadsicher (thread save) sind. Die wichtigsten Methoden vom Matcher sind: matches(): Liefert true zurück, wenn der gesamte untersuchte Text dem Regulären Ausdruck entspricht. find(): Liefert true zurück, wenn innerhalb des Textes eine Passage gefunden wurde, welche dem Regulären Ausdruck entspricht. Die Suche beginnt beim ersten Aufruf am Anfang des Textes und endet mit dem letzten Zeichen, welches dem Regulären Ausdruck entspricht. Sofern reset() nicht aufgerufen wurde, sucht die Methode beim zweiten Aufruf beim nächsten Zeichen nach dem vorausgegangenen Match weiter, es können somit sequenziell alle Matches abgearbeitet werden. group(): Liefert, sofern nach find() aufgerufen, die Textpassage zurück, welche mit dem vorausgegangenen find() gefunden wurde. start(): Liefert, sofern nach find() aufgerufen, die Position des ersten Zeichens der Textpassage zurück, welche mit dem vorausgegangenen find() gefunden wurde. stop(): Liefert, sofern nach find() aufgerufen, die Position des letzten Zeichens der Textpassage zurück, welche mit dem vorausgegangenen find() gefunden wurde. reset(): Setzt den Zeiger der letzten durch find() gefundenen Textpassage wieder auf die Position 0 zurück. Die Flags, welche für die Kompilierung des Patterns akzeptiert werden sind wie folgt: CANON_EQ: Kanonische Äquivalenz also wenn zwei UNICODE Zeichen zur selben Darstellung führen, werden sie als identisch angesehen. CASE_INSENSITIVE: Großbuchstabe und Kleinbuchstabe werden als identisch angesehen. COMMENTS: Kommentare (Zeichen # bis Zeilenende) innerhalb des Regulären Ausdrucks werden ignoriert. DOTALL: Der Punktoperator berücksichtigt auch das Zeilentrennzeichen. LITERAL: Metazeichen werden nicht als solches berücksichtigt, sondern werden literal interpretiert. MULTILINE: Die Operatoren ^ und $ gelten für den Anfang und das Ende jeder Zeile, nicht des gesamten Textes. UNICODE_CASE: Bei CASE_INSENSITIVE wird der Vergleich über den UNICODE Standard durchgeführt. UNIX_LINES: Als Zeilentrenner wird lediglich \n interpretiert. Bei mehreren zu setzenden Flags, müssen diese bitweise mit dem Oder Operator gesetzt und anschließend übergeben werden. Darüber hinaus bietet Java auch in der String Klasse Methoden zur Prüfung des Strings, wie z.b. matches(strregex), replaceall(strregex, strreplacement) an. Dies ist für einfache, einmalige Aufgaben gedacht. Details unter Seite 2

3 Reguläre Ausdrücke 3 Syntax von Regulären Ausdrücken Grundsätzlich hilft bei Regulären Ausdrücken das Netz weiter es gibt hunderte von Seiten, die einem weiterhelfen. Eine sehr gut gestaltete Seite ist: Hier finden sich neben dem hier dargelegten noch viele weitere nützliche Tipps. Zum schnellen validieren kann man sich auf umsehen. 3.1 Identifikation von Zeichen Die einfachste Form von Regulären Ausdrücken ist die Identifikation von einzelnen Zeichen. Hierbei wird der zu suchende Buchstabe einfach als Regulärer Ausdruck interpretiert. Beachtung von Groß- /Kleinschreibung wird in der Regel als Parameter in der RegEx Implementierung gesetzt. Bei Java ist dies das Flag CASE_INSENSITIVE. u a Berufsschule Berafsschale Genauso können mehrere Zeichen als Kette gesucht werden: ul a Berufsschule Berufsschae Zu beachten ist, dass Metazeichen mit \ zu escapen sind: [ ] \ ^ $.? * + ( ) Achtung: Im Java String muss das Escapezeichen ebenfalls escaped werden. Für das Escapen von [ darf somit nicht \[, sondern muss mit \\[ gesetzt werden. Weiterhin sind noch besondere Zeichen definiert worden, wobei diese z.t. abhängig von der Implementierung sind. Die hier angegebenen Zeichen entstammen der Klassenbeschreibung von java.util.regex.pattern: Sonderzeichen: Bedeutung \\ Das backslash Zeichen \0n Das Zeichen mit dem Oktalwert 0n (0 <= n <= 7) \0nn Das Zeichen mit dem Oktalwert 0nn (0 <= n <= 7) \0mnn Das Zeichen mit dem Oktalwert 0mnn (0 <= m <= 3, 0 <= n <= 7) \xhh Das Zeichen mit dem Hexadezimalwert 0xhh (0 <= h <= F) \uhhhh Das Zeichen mit dem Hexadezimalwert 0xhhhh (0 <= h <= F) als Unicode \t Das Tabulatorzeichen ('\u0009') \n Das newline (line feed) Zeichen ('\u000a') \r Das carriage-return Zeichen ('\u000d') \f Das form-feed Zeichen ('\u000c') \a Das Alarm (bell) Zeichen ('\u0007') \e Das escape Zeichen ('\u001b') \cx Das Kontroll-Zeichen zu x (bspw. ctrl a: \ca ) Zusatzinfo Zeilenterminierung: Zeilenterminierungen (bzw. Lineterminators) haben eine besondere Bedeutung, da sie zum einen üblicherweise nicht ausgegeben werden und zum anderen eine unterschiedliche Interpretation bei UNIX und Windows existiert. Darüber hinaus besteht unter Windows die Zeilenterminierung aus zwei Zeichen. Seite 3

4 Hier die relevanten Zeilenumbruch - Zeichen: Terminator: Bedeutung: \n Newline (bzw. Line feed) Zeichen (UNIX) \r\n Carriage Return Zeichen gefolgt von einem Newline Zeichen (Windows) \r Einzelnes Carriage Return Zeichen \u0085 Next Line Zeichen \u2028 Line Separator Zeichen \u2029 Absatz Separator Zeichen Weiterhin sind noch POSIX Zeichenklassen für den US ASCII Code und eigene Java Identifikationen definiert worden. Diese können in der Klassenbeschreibung von java.util.regex.pattern ersehen werden ( 3.2 Identifikation von Zeichengruppen Es ist möglich, verschiedene Zeichen als bestimmte Zeichengruppen anzugeben. Hierzu gibt es verschiedene Möglichkeiten. Die einfachste Möglichkeit ist die Zusammenfassung in Eckigen Klammern [ ]. Innerhalb dieser können wiederum verschiedene Ausdrücke stehen: Einzelne Zeichen werden auch einzeln betrachtet, insofern gibt [aeiou] an, dass nach allen a, e, i, o bzw. u gesucht wird. [aeiou] + Berufsschule B+r+fssch+l+ Zusammenhängende Zeichengruppen können mit Bindestrich angegeben werden. [a-f] sucht somit alle Zeichen von a bis f, wobei die ASCII Codetabelle für die Bestimmung der Bereiche herangezogen wird. [a-f] + Berufsschule B+ru+ss+hul+ Durch Aneinanderreihung von einzelnen Zeichen bzw. zusammenhängenden Zeichengruppen können diese auch kombiniert werden. [aeiou][a-f] sucht somit nach Stellen, an denen a, e, i, o bzw. u vor einem a, b, c, d, e oder f stehen. [aeiou][a-f] + Berufsschule Ber+sschule Die Zeichengruppen können auch negiert werden, indem ein Zirkumflex (^) Zeichen nach der öffnenden Klammer platziert wird. [^a-f] sucht somit nach allen Zeichen, außer a, b, c, d, e oder f. [^a-f] + Berufsschule +e++f++c+++e Weiterhin gibt es vordefinierte Zeichengruppen, welche mit Ausnahme des Punktes mit Hilfe von Zeichengruppen selbst formuliert werden können. Zeichengruppe: Bedeutung: Ersatzausdruck:. Jedes beliebige Zeichen 1 nicht sinnvoll \d Eine beliebige Ziffer [0-9] \D Alles außer Ziffern [^0-9] \s Ein Whitespace Zeichen [\t\n\x0b\f\r] \S Alles außer Whitespace Zeichen [^\t\n\x0b\f\r] \w Ein beliebiges Wort Zeichen (incl. Unterstrich, ohne Umlaute) [a-za-z_0-9] 1 Je nach Setting der Implementierung wird der Line Terminator ignoriert. Bei Java Pattern wird dies durch das setzen des Flags DOTALL erreicht. Seite 4

5 Reguläre Ausdrücke Zeichengruppe: Bedeutung: Ersatzausdruck: \W Alles außer Wort Zeichen [^a-za-z_0-9] Implizit wurde bereits auf die Union von zwei Gruppen hingewiesen ([aeiou][a-f]). Darüber hinaus existiert noch die Intersection ( && ), welche nur die Zeichen identifiziert, welche in beiden Ausdrücken vorhanden ist. Bspw. sucht [a-z&&[^aeiou]] alle Zeichen des Alphabets außer a, e, I, o bzw. u. Eine weitere Operation stellt die Alternative ( ) dar, in der zwei Optionen angegeben werden (cats dogs) würde beim Satz It is raining cats and dogs zwei Matches haben. Diese beiden Funktionen existieren jedoch nur in wenigen Implementationen Java ist eine davon: ( 3.3 Quantoren Um zu spezifizieren, wie oft gesuchte Sequenzen vorkommen dürfen, werden Quantoren benötigt. Sie werden an das gesuchte Zeichen oder Zeichengruppen angehängt (bswp. sucht a{3} alle Vorkommnisse von aaa). Quantor: Bedeutung:? Voranstehender Ausdruck muss 0 oder einmal vorkommen. + Voranstehender Ausdruck muss 1 oder mehrmal vorkommen. * Voranstehender Ausdruck muss 0, 1 oder mehrmal vorkommen. {n} Voranstehender Ausdruck muss exakt n mal vorkommen. {min,} Voranstehender Ausdruck muss mindestens min mal vorkommen. {,max} Voranstehender Ausdruck darf maximal max mal vorkommen. {min,max} Voranstehender Ausdruck muss mindestens min mal und maximal max mal vorkommen. Wichtig zu beachten ist, dass sich die Quantoren auf den vorausgegangen Ausdruck beziehen, nicht auf die gefundene Sequenz. So findet [0-9]{3} sowohl die 000, als auch die 007 im Text von 000 bis 007 ist ein weiter Weg Gieriges Verhalten (greedy) Grundsätzlich verhalten sich die Quantoren gierig (engl. greedy). Dies bedeutet, dass sämtliche möglichen Matches gefunden (und bspw. bei Ersetzung auch angewendet) werden. Folgendes Beispiel soll dies verdeutlichen: s+ + Berufsschule Beruf+chule Der Ausdruck sucht somit ein, oder mehrere s, interpretiert sie als einen Treffer und ersetzt sie mit einem +. Der Match hat somit den gesamten Bereich als seinen Treffer aufgefasst. Anschließend fängt er mit einer neuen Suche an. Gierig bedeutet also, dass der letzte mögliche Match verwendet wird Genügsames Verhalten (reluctant) Nun kann man in den meisten Implementierungen von Regulären Ausdrücken (den Perl Vorgaben folgend) die Quantoren auch genügsam (engl. reluctant, oder non-greedy) auszuführen. Hierfür wird im Regelfall ein? nachgestellt: s+? + Berufsschule Beruf++chule Man sieht am Ergebnis, dass Java pro Wort zwei Matches gefunden hat. Der erste begnügt sich also mit dem ersten gefundenen Buchstaben und beginnt anschließend wieder erneut mit einer Suche. Genügsam bedeutet also, dass der erste mögliche Match verwendet wird Possesives Verhalten (possessive) Mit dem possesiven Verhalten ist es möglich, trotz gierigem Verhalten, den gesamten Match auf eine zusammenhängende Gruppe zu reservieren. Hierzu muss ein + nachgestellt werden. Um das Verhalten zu verdeutlichen, werden hier der normale gierige und der possesive Ausdruck dargestellt: Seite 5

6 . + Bs Bs7 + Der sinnvollste Anwendungsfall für possesives Verhalten ist weniger die Ersetzung von Text, als die Filterung. Eine Prüfung auf ein Matching der oberen Zeile würde false, auf die untere true ergeben. Possesives Verhalten ist in nur wenigen Implementierungen realisiert, Java ist eine davon. 3.4 Grenzen Oftmals ist es notwendig, Zeichenketten anhand ihrer Position in Zeilen oder Wörtern zu identifizieren. Zum Beispiel erwirkt der Operator \b, dass die Zeichenkette an der Grenze eines Wortes stehen muss: \ber + er, der Herr erfährt mehr. +, der Herr +fährt mehr. er\b + er, der Herr erfährt mehr. +, d+ Herr erfährt mehr \ber\b + er, der Herr erfährt mehr. +, der Herr erfährt mehr. Folgende Grenzen kennt Java: Grenze: ^ Bedeutung: Anfang einer Zeile (Zeichen nicht mit dem Negierer verwechseln dieser steht nicht am Anfang) 2 $ Ende einer Zeile 2 \b Wortgrenze \B Nichtwortgrenze (also das Pattern darf nicht an einer Wortgrenze stehen) \A Anfang des untersuchten Strings \G Ende des vorausgegangenen Matches \Z Ende des untersuchten Strings, ohne dem finalen Terminator, sofern er existiert \z Ende des untersuchten Strings 3.5 Nummerierung und Capturing Groups Eine fortgeschrittene Möglichkeit mit Regulären Ausdrücken zu hantieren sind die Capturing Groups, welche beim sogenannten backreferencing genutzt werden. Zuerst ist es wichtig zu verstehen, dass Ausdrücke in Klammern durchnummeriert sind. Beispielsweise hat der Ausdruck ((A)(B(C))) vier Gruppen: 1. ((A)(B(C))) 2. (A) 3. (B(C)) 4. (C) Die Nummerierung folgt den öffnenden Klammern. Wenn nun Ausdrücke verwendet werden, so kann mittels einer Rückwärtsreferenz ( backreference ) diese wieder mittels \n referenziert werden, wobei n die Nummer des referenzierten Ausdrucks ist. Beispielsweise sucht der Ausdruck (\d\d)\1 zwei aufeinanderfolgende Ziffern, wobei diese zweimal hintereinander stehen müssen (dies wird durch die Referenz \1 gefordert, also suche zwei beliebige Ziffern hintereinander \d\d und dann das gleiche nochmal \1 ): (\d\d)\ (\d\d)\ In der unteren Zeile wird das Pattern nicht wiedergefunden, da es kein Ziffernpärchen gibt, welches zweimal hintereinander vorkommt. 2 Multiline Identification muss im Regelfall in der Implementierung aktiviert werden Seite 6

7 Reguläre Ausdrücke 3.6 Look around assertions Es ist möglich Ausdrücke entsprechend ihrer Position eines zweiten Ausdruckes zu bestimmen. Wenn z.b. ein Buchstabe u nur dann gefunden werden soll, wenn er vor einem f steht, kann dies mit einem entsprechenden Ausdruck realisiert werden. Grundsätzlich kann der vorausgehende Ausdruck (look ahead) oder der nachstehende Ausdruck (look back) gesucht werden Look ahead assertion Bei einer vorausschauenden Prüfung wird mit (?=X) geprüft, ob der gesuchte Ausdruck vor einem Referenzausdruck X steht (positive look ahead assertion). Der Ausdruck (?!X) negiert dies und prüft, ob der gesuchte Ausdruck nicht vor einem Referenzausdruck X steht. u(?=f) + Berufsschule Ber+fsschule u(?!f) + Berufsschule Berufssch+le Look back assertion Die zurückschauende Prüfung wird mit (?<=X) formuliert und prüft, ob der gesuchte Ausdruck nach einem Referenzausdruck X steht (positive look behind assertion). Der Ausdruck (?<!X) negiert dies und prüft, ob der gesuchte Ausdruck nicht nach einem Referenzausdruck X steht. (?<=r)u + Berufsschule Ber+fsschule (?<!r)u + Berufsschule Berufssch+le 3.7 Sonderfall Zeilenumbruch Wie oben bereits angedeutet, hat der Punkt Operator. nicht zwingend die Eigenschaft, den Zeilenumbruch als eigenes Zeichen zu interpretieren, dies muss je nach Implementierung aktiviert werden. Wenn z.b. der Text zwischen zwei Klammern identifiziert werden muss, so kann folgender Ausdruck ein Problem darstellen: \(.*\) Wenn die öffnende Klammer in Zeile1 und die schließende Klammer in Zeile 2 steht, würde bei Nichtinterpretation des Zeilenumbruches kein Match gefunden werden, da zwischen den beiden Klammern ja nicht eine beliebige Anzahl von Zeichen stehen würde sondern zwei voneinander getrennte Gruppen von Zeichen. Seite 7

8 4 Lizenz Diese(s) Werk bzw. Inhalt von Maik Aicher ( steht unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Seite 8

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

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

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

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

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

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

Reguläre Ausdrücke. Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik

Reguläre Ausdrücke. Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Reguläre Ausdrücke Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Sinn und Ziel Reguläre Ausdrücke sind eine Möglichkeit eine Menge von Strings aufgrund von gemeinsamen Merkmalen zu

Mehr

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

/ 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

Reguläre Ausdrücke. Silke Trißl Wissensmanagement in der Bioinformatik

Reguläre Ausdrücke. Silke Trißl Wissensmanagement in der Bioinformatik Reguläre Ausdrücke Silke Trißl Wissensmanagement in der Bioinformatik Sinn und Ziel Reguläre Ausdrücke sind eine Möglichkeit eine Menge von Strings aufgrund von gemeinsamen Merkmalen zu beschreiben. Suche

Mehr

Informationsextraktion Materialien zur Vorlesung

Informationsextraktion Materialien zur Vorlesung Vordefinierte Informationsextraktion Materialien zur Vorlesung Reguläre Ausdrücke D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

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

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner

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

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

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

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

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

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

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

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

Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg

Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg Inhaltsverzeichnis Definition Pattern Matching Greediness Eagerness Backtracking Nützliche Optionen Backreferences

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

Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T>

Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T> Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17. Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17.1 Vergleich von Zeichenketten 17.2 Das Interface

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

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

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr Name Klasse Datum 1 Allgemeines Strings sind neben den Arrays die am meisten genutzten zusammengesetzten Datentypen da sie vom Prinzip her eine Kette von Character Werten sind. Da zusammengesetzte Datentypen

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

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

Name Klasse Datum. Datentyp: Definition: Anführungszeichen

Name Klasse Datum. Datentyp: Definition: Anführungszeichen Name Klasse Datum 1 Allgemeines Die wachsende Notwendigkeit Daten schnell und strukturiert zwischen einzelnen Systemen zu verteilen, hat dem XML Format einen wichtigen Platz in der IT Systemlandschaft

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

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

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

Name Klasse Datum. Um nun mit Variablen arbeiten zu können, müssen nun einige Voraussetzungen erfüllt sein:

Name Klasse Datum. Um nun mit Variablen arbeiten zu können, müssen nun einige Voraussetzungen erfüllt sein: Name Klasse Datum 1 Allgemein Wie der Name Datenverarbeitung schon verrät, dienen Rechner dazu Daten zu speichern, zu ändern und wieder auszugeben. Programme bilden den Algorithmus ab, wie die Daten zu

Mehr

Perl Regular Expressions in Base SAS

Perl Regular Expressions in Base SAS Webinar@Lunchtime Perl Regular Expressions in Base SAS Perl Reguläre Ausdrücke (Perl Regular Expressions) Einleitung Perl Regulare Ausdrücke beschreiben einen Text, der als Muster dient. In einem solchen

Mehr

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Dozentin: Wiebke Petersen 9. Foliensatz Wiebke Petersen Einführung CL 1 Suche mit regulären Ausdrücken Suche nach allen Wortformen des

Mehr

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Dozentin: Wiebke Petersen 9. Foliensatz Wiebke Petersen Einführung CL 1 Suche mit regulären Ausdrücken Suche nach allen Wortformen des

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

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht. Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik

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

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

Praktische Informatik I

Praktische Informatik I Praktische Informatik I Tutorium René Frank Universität Marburg November 29, 2011 searchandreplace(sourcestr, searchstr, replacestr) Aufgabe: im String sourcestr jegliches vorkommen der Zeichenkette searchstr

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

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

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 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

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

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

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, Wiederholung Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, einem Anfangszustand q 0 Q, einer Menge von Endzuständen Q E Q, einer

Mehr

Abschnitt 11: Beispiel: Die Klasse String (Teil 1)

Abschnitt 11: Beispiel: Die Klasse String (Teil 1) Abschnitt 11: Beispiel: Die Klasse String (Teil 1) 11. Beispiel: Die Klasse String (Teil 1) 11.1 Einführung 11.2 Die Klasse String und ihre Methoden 11.3 Effizientes dynamisches Arbeiten mit Zeichenketten

Mehr

Reguläre Ausdrücke in Python

Reguläre Ausdrücke in Python Wintersemester 2009/2010 1 Metazeichen, Quantoren, Gruppierung 2 findall, finditer 3 sub, subn 4 split 5 Match Objects 6 greedy 7 Gruppen-Namen 8 Assertions Reguläre Ausdrücke Reguläre Ausdrücke Reguläre

Mehr

Algorithmen & Programmierung. Felder (2) Zeichenketten

Algorithmen & Programmierung. Felder (2) Zeichenketten Algorithmen & Programmierung Felder (2) Zeenketten Zeenketten Verarbeitung von Textdaten in C In C gibt es keinen vordefinierten Datentyp zur Verarbeitung von Textdaten. Es existiert ledigl ein Datentyp

Mehr

Objektorientierte Programmierung. Kapitel 18: Strings

Objektorientierte Programmierung. Kapitel 18: Strings Stefan Brass: OOP (Java), 18. Strings 1/16 Objektorientierte Programmierung Kapitel 18: Strings Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/

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

Objektorientierte Programmierung. Kapitel 10: Strings

Objektorientierte Programmierung. Kapitel 10: Strings 10. Strings 1/16 Objektorientierte Programmierung Kapitel 10: Strings Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/ 10.

Mehr

Objektorientierte Programmierung. Kapitel 18: Strings

Objektorientierte Programmierung. Kapitel 18: Strings 18. Strings 1/16 Objektorientierte Programmierung Kapitel 18: Strings Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/ 18.

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen Dozentin: Wiebke Petersen 24.11.2009 Wiebke Petersen Einführung CL (WiSe 09/10) 1 Pumping-lemma für reguläre Sprachen Lemma (Pumping-Lemma)

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

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

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

grep in Adobe InDesign

grep in Adobe InDesign grep in Adobe InDesign Kurs 2, Version CS5 Kursleiter: Serge Paulus Unterlagen Version 2 vom Juni 2011 grep in Adobe InDesign Kurs 2, Version CS5 2 grep in InDesign grep in InDesign Es gibt mehrere Implementierungen

Mehr

Übersicht. Einführung in Perl Operatoren - Richtigstellung Mustersuche II. Richtigstellung Operatoren (2) Richtigstellung Operatoren (1)

Übersicht. Einführung in Perl Operatoren - Richtigstellung Mustersuche II. Richtigstellung Operatoren (2) Richtigstellung Operatoren (1) IMS Einführung in Perl Operatoren - Richtigstellung Mustersuche II Universität Stuttgart Institut für maschinelle Sprachverarbeitung http://www.ims.uni-stuttgart.de/lehre/teaching/2003-ws/perl/home.html

Mehr

2 Die Codierung Sehen wir uns mal den vereinfachten Weg der Informationen von der Tastatur aus bis zum Filesystem an:

2 Die Codierung Sehen wir uns mal den vereinfachten Weg der Informationen von der Tastatur aus bis zum Filesystem an: Name Klasse Datum 1 Allgemeines Daten werden bekanntermaßen im Computer in einem flüchtigen Speicher, dem RAM verarbeitet. Insofern gehen sie verloren, sobald der Rechner ausgeschaltet wird. Weiterhin

Mehr

Objektorientierte Programmierung. Kapitel 17: Strings

Objektorientierte Programmierung. Kapitel 17: Strings 17. Strings 1/17 Objektorientierte Programmierung Kapitel 17: Strings Prof. Dr. Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2018/19 http://www.informatik.uni-halle.de/ brass/oop18/

Mehr

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen 17.5.

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen 17.5. Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen Dozentin: Wiebke Petersen 17.5.2010 Wiebke Petersen Einführung CL (SoSe 2010) 1 Pumping-lemma für reguläre Sprachen Lemma (Pumping-Lemma)

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

Abschnitt 7: Beispiel: Die Klasse String (Teil 1)

Abschnitt 7: Beispiel: Die Klasse String (Teil 1) Abschnitt 7: Beispiel: Die Klasse String (Teil 1) 7. Beispiel: Die Klasse String (Teil 1) 7.1 Einführung 7.2 Die Klasse String und ihre Methoden 7.3 Effizientes dynamisches Arbeiten mit Zeichenketten 7.4

Mehr

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9 Java Einführung Objekt-Datentypen und Strings Kapitel 8 und 9 Inhalt Was sind Objekt-Datentypen Sonderheiten bei Zuweisung und Vergleich Zeichenketten (Strings) Zeichencodes Char, Char-Arrays und Strings

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

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Tutorium 2. Strings. Skript zur Vorlesung Einführung in die Programmierung

Tutorium 2. Strings. Skript zur Vorlesung Einführung in die Programmierung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Tutorium 2 Strings Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität

Mehr

Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN D3kjd3Di38lk323nnm

Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN D3kjd3Di38lk323nnm D3kjd3Di38lk323nnm Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN 97838689994029783868999402 Inhalt Vorwort.... 1 Was ist ein regulärer Ausdruck?... 1 Ein Anfang mit Regexpal... 2 Eine

Mehr

Perlkurs WS 14/15 Reguläre Ausdrücke I

Perlkurs WS 14/15 Reguläre Ausdrücke I Perlkurs WS 14/15 Reguläre Ausdrücke I 1 Reguläre Ausdrücke Reguläre Ausdrücke mächtigtes Werkzeug von Perl, um nach Mustern (Gruppen von Zeichen) innerhalb von Text zu suchen z.b. in Protein- und DNA-Sequenzen

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

2.1 Fundamentale Typen

2.1 Fundamentale Typen 2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische

Mehr

Reguläre Ausdrücke. Einstieg in PHP 5.4 und MySQL 5.5. Zusatzkapitel zum Buch: Thomas Theis ISBN

Reguläre Ausdrücke. Einstieg in PHP 5.4 und MySQL 5.5. Zusatzkapitel zum Buch: Thomas Theis ISBN Zusatzkapitel zum Buch: Thomas Theis Einstieg in PHP 5.4 und MySQL 5.5 ISBN 978-3-8362-1877-1 Galileo Press 2012 1 Suchmuster Reguläre Ausdrücke dienen zur Beschreibung von Suchmustern. Mit Hilfe dieser

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

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

Scala. Funktionale (Zustandslose) Objekte

Scala. Funktionale (Zustandslose) Objekte Scala Funktionale (Zustandslose) Objekte Agenda Was sind Funktionale Objekte? veränderliche Objekte vs. unveränderliche Objekte Klassen Parameter Konstruktoren Private Member Methoden und Operatoren Overriding

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

WS2017/ Oktober 2017

WS2017/ Oktober 2017 Ronja Düffel WS2017/18 05. Oktober 2017 mit Python Programmieren (vereinfacht) 1 Problem beschreiben und analysieren 2 Enwicklung und Beschreibung einer Lösung 3 Übertragung/Umsetzung in eine Programmiersprache

Mehr

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 07: Composite Classes Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 23 Inhalt

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

UML - Sequenzdiagramm

UML - Sequenzdiagramm Name Klasse Datum 1 Allgemeines Neben Aktivitätsdiagramm, Kollaborationsdiagramm, Zustandsdiagramm und Anwendungsfalldiagramm ist das Sequenzdiagramm eines von fünf Diagrammen in UML, welches dynamische

Mehr

In C++ kann man fünf Teilsprachen, die bezüglich Syntax und Semantik differieren, unterscheiden. Objektorientierte Erweiterungen von C

In C++ kann man fünf Teilsprachen, die bezüglich Syntax und Semantik differieren, unterscheiden. Objektorientierte Erweiterungen von C Bemerkungen zu C++: In C++ kann man fünf Teilsprachen, die bezüglich Syntax und Semantik differieren, unterscheiden. Es sind: C-Sprache Objektorientierte Erweiterungen von C Templates Standardbibliothek

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Umsetzungshilfe Java Teil 1

Umsetzungshilfe Java Teil 1 Name Klasse Datum 1 Allgemeines In unseren Programmen werden Daten eingegeben, verarbeitet und wieder ausgegeben (EVA-Prinzip). Da wir am Anfang noch keine sehr umfangreichen Programme erstellen, sind

Mehr

Regexp Reguläre Ausdrücke

Regexp Reguläre Ausdrücke Vincent Tscherter Regexp Reguläre Ausdrücke Suchen und Ersetzen von en, das können sehr viele Programme. Aber was, wenn man nach allen Telefonnummern oder E-Mail-Adressen in einem suchen möchte? Oder nach

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

Reguläre Ausdrücke O'REILLT. Jeffrey E. E Eriedl. Deutsche Übersetzung von Andreas Karr er

Reguläre Ausdrücke O'REILLT. Jeffrey E. E Eriedl. Deutsche Übersetzung von Andreas Karr er Reguläre Ausdrücke Jeffrey E. E Eriedl Deutsche Übersetzung von Andreas Karr er O'REILLT Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo \ Vorwort von Jeffrey Friedl zur deutschen Übersetzung

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr