Reguläre Ausdrücke Suchmuster, Pattern Matching

Größe: px
Ab Seite anzeigen:

Download "Reguläre Ausdrücke Suchmuster, Pattern Matching"

Transkript

1 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 <STDIN> { if (/e/) { print "e ist enthalten in $_ \n"; last; Alternative Muster-Begrenzungszeichen, wenn ein 'm' am Anfang steht: /e/ m(e) m<e> m{e m#e# m:e: #Standard: slashes oder: In Perl gibt es neben index eine weitere Möglichkeit, eine Zeichenkette bzw. eine Variable nach einem Ausdruck zu durchsuchen. Während index die Position eines Zeichen zurückgibt, an der es gefunden wurde, liefert ein Mustervergleich erst einmal nur wahr oder falsch zurück. Ein Mustervergleich wird einfach mit einem Ausdruck in Slashes geschrieben, wie wir in der split- Funktion bereits gesehen haben. Wenn also zum Beispiel nach einem Buchstaben 'e' in einer Zeichenkette gesucht wird, schreibt man einfach /e/ als Suchmuster. Statt den Slashes kann man auch andere Begrenzungszeichen verwenden. Dann muss allerdings ein kleines m vor dem Muster stehen. Als Begrenzungszeichen können dann Doppelpunkte, runde, spitze oder geschweifte Klammern oder Rautezeichen verwendet werden

2 Suchmuster, Matching-Operator Ein oder mehrere Einzelzeichen mit Matching-Operator suchen: $string =~ /e/ #liefert wahr, wenn $string ein 'e' enthält. $string =~ /aus/ #liefert wahr, wenn $string 'aus' enthält. $text = "Heute ist Mittwoch!"; if ($text =~ /ute/) { print "ute ist im Text enthalten\n"; Ein oder mehrere Einzelzeichen mit Matching-Operator ausschließen: $string!~ /e/ #liefert wahr, wenn $string kein 'e' enthält. $string!~ /aus/ #liefert wahr, wenn $string 'aus' nicht enthält. $text = "Heute ist Mittwoch!"; if ($text!~ /frei/) { print "frei ist im Text nicht enthalten\n"; 98 Allerdings sucht dieses reguläre Muster nur in der Variablen $_. Um andere Variablen zu durchsuchen muss der Matching-Operator =~ verwendet werden. Auch hier liefert der Mustervergleich wahr, wenn der Ausdruck in der Varablen vorkommt. Umgekehrt liefert der Matching-Operator!~ (also die Negation) wahr zurück, wenn der Ausdruck nicht in der Variablen vorkommt. Reservierte Metazeichen in einem regulären Ausdruck, d.h. Zeichen die nicht verwendet werden dürfen (oder durch einen vorangestellten Backslash gekennzeichnet werden) sind: + -?. * ^ $ ( ) [ ] { \ 98

3 Suchmuster, Zeichenklasse in eckigen Klammern Eine Zeichenklasse suchen, d.h. mindestens einen Treffer aus einer Gruppe von Zeichen: /[aeiou]/ #liefert wahr, wenn $_ einen kleinen Vokal enthält. /[aeiouaeiou]/ #liefert wahr, wenn $_ einen beliebigen Vokal enthält. $text = "Heute ist Mittwoch!"; if ($text =~ /[aeiou]/) { print "Im Text sind Vokale enthalten\n"; Einen Zeichenklasse-Bereich suchen: /[a-d]/ #liefert wahr, wenn $_ a, b, c oder d enthält. /[0-9]/ #liefert wahr, wenn $_ eine beliebige Ziffer enthält. /[^0-9]/ #liefert wahr, wenn $_ keine Ziffer enthält. $text = "heute ist mittwoch, der "; if ($text =~ /[^A-Z]/) {print "Im Text sind Grossbuchstaben nicht enthalten\n" if ($text =~ /[0-9]/) {print "Im Text sind Ziffern enthalten\n" 99 Mit eckigen Klammern wird eine ganze Gruppe von Zeichen definiert, von denen mindestens eines vorkommen muss. Man nennt diese Gruppe Zeichenklasse. Sie kann auch aus einem Bereich bestehen, wenn das Minuszeichen dazwischen steht. Also [a-f] erkennt einen beliebigen Kleinbuchstaben zwischen a und f. Der Ausdruck [a-fa-f] erkennt einen beliebigen Groß- oder Kleinbuchstaben zwischen a und f. Das Minuszeichen selbst muss dann mit Backslash geschrieben werden: [0-9\-] erkennt Ziffern 0 bis 9 und das Minuszeichen. Steht gleich links hinter der eckigen Klammer ein Caret-Zeichen ^, dreht dieses den Sinn um. Also [^0-9] darf keine Ziffer finden! 99

4 Suchmuster, Vordefinierte Zeichenklassen Kurzformen für häufig benötigte Zeichenklassen: Konstrukt Bedeutung Klasse Negiertes Konstrukt Bedeutung Klasse \d Ziffer 0-9 [0-9] \D keine Ziffer [^0-9] \w Wortzeichen [a-za-z0-9_] \W kein Wortzeichen [^a-za-z0-9_] \s Whitespace [ \r\t\n\f] \S kein Whitespace [^ \r\t\n\f] $text = " "; if ($text =~ /[0-9]/) {print "Im Text sind Ziffern enthalten\n" if ($text =~ /\d/) {print "Im Text sind Ziffern enthalten\n" #identisch! Für mehrere gleiche Zeichen kann das Konstrukt wiederholt werden (das Konstrukt steht für jeweils eine Zeichenstelle). Für beliebig viele Wiederholungen kann ein Stern * benutzt werden: if ($text =~ /\d\d\.\d\d\.\d*/) {print "Im Text ist ein Datum enthalten\n" if ($text =~ /\d\d.\d\d.\d*/) {print "Im Text ist ein Datum enthalten\n" 100 Allerdings ist es unpraktisch, wenn man zum Beispiel einen Zahlenausdruck sucht und dann für jede Ziffer eine komplette Zeichenklasse angeben muss. Deshalb hat man die wichtigsten Ausdrücke in kürzeren Konstrukten zusammengefasst. Diese Konstrukte beginnen (leider) auch mit einem Backslash. So steht dann \d für eine beliebige Ziffer im Text und \w sogar für ein beliebiges Textzeichen. Alles was keine Wortzeichen (Großbuchstabe: \W) sind, müssen dann Steuerzeichen und Rechenzeichen sein. Diese Konstrukte lassen sich dann beliebig kombinieren, um eine bestimmte Textformatierung zu suchen. Übung: Schreiben Sie ein Programm, das eine beliebige Hexadezimalzahl einliest. Anschließend prüfen Sie, ob es ein Hexdezimalzahl war. Falls nicht, wiederholt sich die Eingabe. Eine gültige Hexdezimalzahl wird dann nach dem Hornerschema in eine Dezimalzahl umgewandelt. Lösung: 100

5 Suchmuster, Muster gruppieren einzelne beliebige Zeichen: /a. / erkennt alle Kombinationen aus zwei Zeichen, die mit a beginnen. Multiplikatoren (Quantifizierer): Meta * +? {n,m {n, {n Bedeutung Kein oder mehrere vorausstehende Zeichen Ein oder mehrere vorausstehende Zeichen Kein oder ein vorausstehendes Zeichen mindestens n und maximal m vorausst. Zeichen mindestens n oder viele vorausst. Zeichen genau n vorausstehende Zeichen Beispiele: / */ Leerz. in "wert 5" /\d+/ /hn?/ /_{1,7/ /s{2,/ /t{2/ eine o. viele Ziffern Huhn, Kuh, Kahn hier drin Wasser, Psssst Matte Weitere Beispiele: /fus+ba?l{2/ fussball, fusbll, fusssball etc. /a.{4w/ aber was (4 beliebige Zeichen zwischen a und w) /\d{2,4/ zwei- bis vierstellige Zahl (Jahreszahl) 101 Meist sucht man nicht nur ganz einfache Zeichen sondern relativ komplizierte Ausdrücke. Wenn Sie zum Beispiel Maier finden wollen, aber auch Meier und Mayer und Meyer, dann brauchen Sie entsprechende Platzhalter. Diese Metazeichen können Sie beliebig gruppieren und anordnen. Natürlich dürfen dabei auch Klammern verwendet werden. Dabei werden allerdings automatisch Speichervorgänge ausgelöst. Das Ergebnis jedes Klammerausdrucks wird in einer Variablen gespeichert: äusserer Klammerausdruck in $1, innerer Ausdruck in $2, $3, usw. Ohne Klammern steht das Suchergebnis immer in $& zur Verfügung! 101

6 Suchmuster, Vorrang und Alternativen Es wird nach der einen oder anderen Sequenz gesucht: /Muster1 Muster2/ Beispiele: /abc*/ findet ab, abc, abcc, abccc, abcccc, etc. /(abc)*/ findet "", abc, abcabc, abcabc, etc. /^x y/ findet ein x am Zeilenanfang oder ein y an beliebiger Stelle. /^(x y)/ findet ein x oder ein y am Anfang der Zeile. /a bc d/ findet a oder bc oder d. while (1) { print "Noch irgendwelche Wuensche?\n"; if (<STDIN> =~ /^(j J)/) { #Zeile beginnt mit j oder J #Alternative: if (<STDIN> =~ /^[jj]/) print "Und welcher Wunsch ist das?\n"; <STDIN>; #Eingabe verwerfen print "Tut mir leid, das geht nicht!\n"; else {print "Soso...!\n" 102 Gelegentlich weiß man nicht genau, welcher Textteil zusammen mit dem Suchausdruck steht. Aber statt mit Platzhaltern alles zuzulassen, legt man bestimmte Möglichkeiten fest. Dazu schreibt man nur ein Oder-Zeichen zwischen die verschiedenen Möglichkeiten. Der RegEx- Ausdruck findet dann die eine oder die andere Variante. Übung: Schreiben Sie ein Programm, das Sie mit einer Benutzerfunktion zur Eingabe eines Datei-namens auffordert. Die Funktion prüft, ob es die Datei gibt. Dann öffnet das Programm die Datei und durchsucht sie nach Postleitzahlen. Die Postleitzahlen werden dann sortiert in ein Word- Dokument geschrieben. Lösung: 102

7 Suchmuster, Substitution Durchsucht einen String nach einem Muster und ersetzt es dann: s/alt-regex/ersatztext/ ersetzt in $_ $var =~ s/alt-regex/ersatztext/ ersetzt in $var Suchoptionen: Option Bedeutung g Ersetzt global, also alle Vorkommen i Ignoriert Groß/Kleinschreibung s Läßt. Zeilenumbrüche erkennen x Ignoriert Whitespaces, erlaubt Kommentare e Evaluiert (berechnet) Ersatztexte s/ä/ae/g s/meier/maier/i s/tren-.ung/trennung/s s/ergebnis/$wert1+$wert2/e Mit dem Substitutionsoperator s können in einem Ausdruck alle gefundenen Ausdrücke durch beliebigen anderen Text ersetzt werden. Selbstverständlich dürfen dazu auch Variablen benutzt werden. Beachten Sie aber dabei, dass bestimmte Teile (eckige Klammern für Indizes bei Arrays) unter Umständen falsch interpretiert werden. Be-nutzen Sie also möglichst einfache Skalare. Normalerweise wird nur der erste gefundene Ausdruck ersetzt. Wenn Sie alle pas-senden Ausdrücke ersetzen wollen, können Sie hinter den letzten Slash eine Option angeben. Hier führt zum Beispiel ein g dazu, dass alle Ausdrücke ersetzt werden. Der skalare Rückgabewert der Substitution ist die Anzahl der Ersetzungen! Übung: Schreiben Sie ein Programm, das eine CSV-Messtabelle für Temperaturen einliest. In der ersten Zeile sind wieder die Feldnamen: Meßzeit und datum, Meßstelle1, Meßstelle2, Meßstelle Dann wird eine Textdatei eingelesen, die Platzhalter für die Daten enthält. Die Platzhalter sollen ausgefüllt werden (nur für Meßwert1). Geben Sie dann das Ergebnis auf dem Bildschirm oder in eine Datei aus. Die aktuellen Messergebnisse vom dddddddddd lauten: aaaaa bbbbb ccccc Mehr gibt es morgen. Mit freundlichen Gruessen, Blabla. 103

8 Suchmuster, Transliteration Ersetzt eine Suchliste mit einer Ersatzliste: tr/suchliste/ersatzliste/ ersetzt in $_ $var =~ tr/suchliste/ersatzliste/ ersetzt in $var Optionen: Option c d s Bedeutung Komplement, also alles was nicht in der Suchliste steht Löscht die gefundenen Zeichen ersetzt aufeinanderfolgende Zeichen nur einmal Beispiele: tr/ab/ba/ #vertauscht alle a und b in $_ tr/a-z/a-z/ #ersetzt alle Klein- mit Großbuchstaben tr/äöü/_/ #ersetzt alle Umlaute durch Unterstrich tr/\n/ / #ersetzt alle Zeilenumbrüche mit Leerzeichen tr/\n//d #löscht alle Zeilenümbrüche tr/a-z /a-z /c #ersetzt alles was nicht Kleinbuchstaben sind 104 Eigentlich ist die Transliteration kein Patternmatching im Sinne regulärer Ausdrücke. Aber sie funktioniert so ähnlich. Jedes Zeichen aus der Suchliste, das im Ausdruck vorkommt, wird durch sein entsprechendes Zeichen aus der Ersatzliste ersetzt. Kommt das zweite Zeichen aus der Suchliste vor, wird es mit dem zweiten Zeichen der Ersatzliste ersetzt. Falls die Ersatzliste kleiner ist als die Suchliste, vervielfältigt Perl die Ersatzliste bis die Anzahl stimmt. Geben Sie keine Ersatzliste an, gibt die Transliteration die Anzahl der Übereinstimmungen zurück, also wie viele Elemente der Suchliste gefunden wurden. 104

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

Ü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

Übersicht. Einführung in Perl Mustersuche III/ Datentypen II. Mehrzeiliges Matching (1) Mehrzeiliges Matching (2) chomp

Übersicht. Einführung in Perl Mustersuche III/ Datentypen II. Mehrzeiliges Matching (1) Mehrzeiliges Matching (2) chomp Einführung in Perl Mustersuche III/ Datentypen II Universität Stuttgart Institut für maschinelle Sprachverarbeitung http://www.ims.uni-stuttgart.de/lehre/teaching/2003-ws/perl/home.html [email protected]

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

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

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

Einführung in Perl Übersicht Operatoren Mustersuche I Autoinkrement und Autodekrement Autoinkrement und Autodekrement Bsp

Einführung in Perl Übersicht Operatoren Mustersuche I Autoinkrement und Autodekrement Autoinkrement und Autodekrement Bsp Übersicht Ergänzendes zu Operatoren Autoinkrement ++ und Autodekrement - logisches und && und oder Ordnung von Operatoren Reguläre Ausdrücke Diamantoperator Perl, 31.10.03 Mustersuche I 1 Autoinkrement

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

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

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

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

Ein- und Ausgabeumlenkung

Ein- und Ausgabeumlenkung Ein- und Ausgabeumlenkung Viele Prozesse lesen und/oder schreiben Daten (z.b. who, date, cat, rm -i,...) Zu jedem Kommando gibt es voreingestellte Dateien, von denen Daten gelesen und/oder in die Daten

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

Empfehlenswerte Referenzen

Empfehlenswerte Referenzen Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen...1 0 Wozu reguläre Ausdrücke?...1 1 Die Elemente regulärer Ausdrücke...2 2 Ein

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

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

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 [email protected] Bayerische Akademie der Wissenschaften, IT-Referat Reguläre Ausdrücke engl. regular expressions, kurz: regex, regexp

Mehr

Reguläre Ausdrücke. Reguläre Ausdrücke = Regular Expressions = reg.exp./regexp/regexp = RE

Reguläre Ausdrücke. Reguläre Ausdrücke = Regular Expressions = reg.exp./regexp/regexp = RE Blockseminar Einführung in die Korpuslinguistik Seminarleitung: Yvonne Krämer, M.A. REGULAR EXPRESSIONS RegExp Was ist ein regulärer Ausdruck? = Regular Expressions = reg.exp./regexp/regexp = RE Ein regulärer

Mehr

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit

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

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

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

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

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

Die Shell. Ein Vortrag von Frederik und Michael 1 / 35

Die Shell. Ein Vortrag von Frederik und Michael 1 / 35 Die Shell Ein Vortrag von Frederik und Michael 1 / 35 Die Shell Teil 1 Einleitung Geschichte des Terminals Vergleich von GUI und Konsole Teil 2 Praxis Teil 3 Konzepte und Möglichkeiten der Shell Teil 4

Mehr

C. Ortseifen: Reguläre Ausdrücke

C. Ortseifen: Reguläre Ausdrücke Inhalt Reguläre Ausdrücke mit SAS Einsatz der RX- und PRX-Funktionen Dr. Carina Ortseifen SAS-Treff am URZ 2. Dezember 2005 1. Einleitung 2. Aufbau der regulären Ausdrücke 3. Beispiele 4. Reguläre Ausdrücke

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

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Abfragen mit Platzhaltern

Abfragen mit Platzhaltern Abfragen mit Platzhaltern Um für Abfragen Kriterien zu definieren, die Werte nach einem speziellen Muster auswählen, werden Platzhalter verwendet. Diese werden auch als Jokerzeichen bezeichnet und in sogenannten

Mehr

ÜBUNG 6 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

ÜBUNG 6 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler ÜBUNG 6 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN 1 ZAHLENSYSTEME Normalerweise schreibt man Zahlen im sog. Dezimalsystem 4 2 6 9 2 ZAHLENSYSTEME 4 2 6 9 x100 x100 x10 x1 3 ZAHLENSYSTEME

Mehr

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze Lexikalische Struktur von Fortran 95. Normierte Zeichensätze Im Folgenden steht für ein Leerzeichen! ASCII (American Standard Code for Information Interchange. Es gibt eine DIN-Norm die dem entspricht),

Mehr

Arithmetik in der tcsh

Arithmetik in der tcsh Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3

Mehr

Übersicht Shell-Scripten

Übersicht Shell-Scripten !!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,

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

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl

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

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

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while

Mehr

Microsoft Access 2010 Daten filtern. Leibniz Universität IT Services Anja Aue

Microsoft Access 2010 Daten filtern. Leibniz Universität IT Services Anja Aue Microsoft Access 2010 Daten filtern Leibniz Universität IT Services Anja Aue Auswahlabfragen... sortieren Informationen aus ein oder mehreren Tabellen. filtern Informationen in Abhängigkeit von bestimmten

Mehr

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden Funktionen in Matlab Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung

Mehr

Python Variablen und Anweisungen

Python Variablen und Anweisungen Python Variablen und Anweisungen Ausdruck... besteht aus Operanden und Operatoren, die nach bestimmten Regeln zusammengesetzt werden. formuliert einzelne Schritte des Programms. ist eine Verarbeitungsvorschrift,

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

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

Wozu braucht man das? (1) Wozu braucht man das? (2)

Wozu braucht man das? (1) Wozu braucht man das? (2) Programmierkurs für absolute Anfänger Reguläre Ausdrücke / regular expressions Wozu braucht man das? (1) Caren Brinckmann Sommersemester 2005 http://www.coli.uni-saarland.de/~cabr/teaching.php Programmierkurs

Mehr

Übersicht. Einführung in Perl Datenstrukturen I. Datentypen Übersicht (1) Kernbegriffe. Kernbegriffe. Einführung der Datentypen.

Übersicht. Einführung in Perl Datenstrukturen I. Datentypen Übersicht (1) Kernbegriffe. Kernbegriffe. Einführung der Datentypen. Übersicht Kernbegriffe Einführung der Datentypen Skalare im Detail Vergleichsoperatoren Standardeingabe chomp-operator while-schleife Perl, 24.10.03 Datentypen I 1 Datentypen Übersicht (1) Datentyp Erklärung

Mehr

Python für Linguisten

Python für Linguisten Python für Linguisten Dozentin: Wiebke Petersen & Co-Dozentin: Esther Seyarth Fortgeschrittene Zeichenkettenverarbeitung mit regulären Ausdrücken Esther Seyarth Python 1 Motivation Wir haben bereits einige

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

Perl Programmierung Grundlagen

Perl Programmierung Grundlagen Seminarunterlage Version: 4.06 Copyright Version 4.06 vom 17. Dezember 2018 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

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

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

Quick-Start Informatik Programmieren in Python Teil 1

Quick-Start Informatik Programmieren in Python Teil 1 Quick-Start Informatik 2011 Programmieren in Python Teil 1 Alles zum Praxisteil } Skript, Übungen, auf Folien... http://vorkurs.cs.uni-frankfurt.de Bücher: Gratis: http://learnpythonthehardway.org/ Fragen,

Mehr

Funktionen nur wenn dann

Funktionen nur wenn dann Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative

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

15 Der AWK. (Aho, Weinberger, Kernighan)

15 Der AWK. (Aho, Weinberger, Kernighan) 15 Der AWK (Aho, Weinberger, Kernighan) Mächtiges Werkzeug zum Manipulieren von Dateien -> Reportgenerator Feldweise Bearbeitung von Dateien oder String - liest zeilenweise Suchen nach Text mit vorgebenen

Mehr

KLAUSUR ZUM BACHELORMODUL,,EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2011/12, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

KLAUSUR ZUM BACHELORMODUL,,EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2011/12, DR. MAXIMILIAN HADERSBECK KLAUSUR AM KLAUSUR ZUM BACHELORMODUL,,EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2011/12, DR. MAXIMILIAN HADERSBECK KLAUSUR AM 06.02.2012 VOR NACH MATRIKELNUMMER: STUDIENGANG: B.Sc. Computerlinguistik, B.Sc. Informatik,

Mehr

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( 6 Ein- und Ausgabe Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( Drucken war hoffnungslos übertrieben); heute lernen wir, wie wir die Ergebnisse unserer Programme abspeichern können, um sie

Mehr

8. Arbeiten mit Dateien

8. Arbeiten mit Dateien 8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den

Mehr

Processing Info zu Variablen und Bedingungen

Processing Info zu Variablen und Bedingungen Processing Info zu Variablen und Bedingungen Dieses Dokument enthält - Variablen (Variablen, Datentypen, Deklaration, Geltungsbereich, Benennung) - Bedingungen (if, mousepressed, else) Variablen Eine Variable

Mehr

Einführung in die Computerlinguistik Einführung in Python (2)

Einführung in die Computerlinguistik Einführung in Python (2) Einführung in die Computerlinguistik Einführung in Python (2) Dozentin: Wiebke Petersen 11. Foliensatz Wiebke Petersen Einführung CL 1 Kurzwiederholung der letzten Sitzung Textausgabe mit print("text")

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

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

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Abstrakte Syntax von Prolog (1)

Abstrakte Syntax von Prolog (1) 3. Prolog Syntax 3-1 Abstrakte Syntax von Prolog (1) Abstrakte und konkrete Syntax: Abstrakte Syntax: Nur Datenstrukturen, die der Parser anlegt (z.b. Operatorbaum). Konkrete Syntax: Zeichenketten, die

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

Benutzung der Manpage, Shell Teil 3

Benutzung der Manpage, Shell Teil 3 Benutzung der Manpage, Shell Teil 3 Linux-Kurs der Unix-AG Andreas Teuchert 3./9. Mai 2012 Manpages Dokumentation zu Programmen, speziellen Dateien, etc. steht in Manpages Aufruf mit man Manpage

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

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

Systemverwaltung mittels Skripts

Systemverwaltung mittels Skripts Systemverwaltung mittels Skripts Sept. 2003 M. Rigling 1 / 1 Version 0.2 Inhaltsverzeichnis: Systemverwaltung mittels Skripts...1 Inhaltsverzeichnis:...2 1. Skriptsprachen...3 2. Zur Erstellung von Skripts...3

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

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

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Eine Beschreibung des Programms und der dahinter stehenden Philosophie. 1 Geschichte Larry Wall schrieb ein Konfigurationsmanagementsystem und benötigte dazu ein Berichtwerkzeug, das mehrere Dateien gleichzeitig öffnen konnte. Awk konnte es damals nicht, daher schrieb er eine

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

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/

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

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

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

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Perl-Praxis. Jörn Clausen

Perl-Praxis. Jörn Clausen Perl-Praxis Reguläre Ausdrücke Jörn Clausen [email protected] Übersicht Reguläre Ausdrücke Muster suchen Muster finden Perl-Praxis Reguläre Ausdrücke 2/19 zur Erinnerung Perl := Practical

Mehr