Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
perl [14.01.2016 12:08] marc regexp |
perl [16.01.2016 10:06] (aktuell) marc [Optionale Parameter in sub()] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Perl ====== | ====== Perl ====== | ||
| + | |||
| + | Siehe auch: | ||
| + | |||
| + | https:// | ||
| ===== Subroutinen mit Übergabeparametern ===== | ===== Subroutinen mit Übergabeparametern ===== | ||
| Zeile 38: | Zeile 42: | ||
| - | ===== regexp ===== | ||
| - | Regular Expressions - oder, auf Deutsch, reguläre Ausdrücke - dienen dazu, einen Text auf bestimmte Zeichenfolgen zu überprüfen und diese dann - bei Bedarf - zu manipulieren. Diese Suchbegriffe können durch die regexp-Syntax sehr variabel gehalten werden. | + | ===== Optionale Parameter in sub() ===== |
| - | Sie sind Programmiersprachen-unabhängig, | + | |
| + | |||
| + | sub defineUhrzeitAnsage ($;$$){ | ||
| + | my ($player, $count, $volume) = @_; | ||
| + | |||
| + | # | ||
| + | $volume //= " | ||
| + | |||
| + | # | ||
| + | $count = 0 unless $count; | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | ===== reguläre Ausdrücke - regexp ===== | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Regular Expressions - oder, auf Deutsch, reguläre Ausdrücke - dienen dazu, einen Text auf bestimmte Zeichenfolgen zu überprüfen und diese dann - bei Bedarf - zu manipulieren. Diese Suchbegriffe können durch die regexp-Syntax sehr variabel gehalten werden. Sie sind Programmiersprachen-unabhängig, | ||
| - | Regexp setzen sich zusammen aus Literalen und aus Metazeichen. Literale sind Buchstaben, auf die exakt geprüft werden soll und die Metazeichen bringen die Variablität rein. Ein Beispiel: Die regexp /abc/ besteht nur aus Literalen: sie schlägt nur bei abc zu, Abc zB wird ignoriert, da das große A nicht dem kleinen a entspricht. | + | Regexp setzen sich zusammen aus Literalen und aus Metazeichen. Literale sind Buchstaben, auf die exakt geprüft werden soll und die Metazeichen bringen die Variablität rein. Ein Beispiel: Die regexp /abc/ besteht nur aus Literalen: sie schlägt nur bei abc zu, Abc zB wird ignoriert, da das große A nicht dem kleinen a entspricht. |
| Die - für uns vorerst wichtigen - Metazeichen sind: | Die - für uns vorerst wichtigen - Metazeichen sind: | ||
| - | 1.Allgemein: | + | 1.Allgemein: |
| - | •^ steht für den Textanfang. /^abc/ ist nur dann wahr, wenn der Text mit abc beginnt. | + | |
| - | •$ steht für das Textende. /abc$/ ist nur dann wahr, wenn der Text mit abc endet. | + | |
| - | •\b steht für eine Wortgrenze. abc ist wahr, wenn abc als eigenes Wort im Text auftaucht ("abc def ...") und falsch, wenn abc nur Teil eines Wortes ist ( "abcd ef..." ) | + | |
| - | •\B ist das Gegenteil von \b. abc ist falsch, wenn abc als eigenes Wort im Text auftaucht ("abc def ...") und wahr, wenn abc nur Teil eines Wortes ist ( "abcd ef..." ) | + | |
| - | •| dient als oder-Verknüpfung. /abc|xyz/ ist sowohl bei abc als auch bei xyz wahr. | + | |
| - | 2. Wildcards, Suchbereiche: | + | 2. Wildcards, Suchbereiche: |
| - | •. ( der Punkt ) steht für ein beliebiges Zeichen: /ab.c/ ist wahr, wenn im Text zB abxc, ab1c oder ab c steht. Es ist nicht wahr, wenn zwischen ab und c mehr als ein Zeichen steht. | + | |
| - | •[...] Eckige Klammern definieren einen Zeichenbereich, | + | |
| - | Es können auch ganze Zeichen-Bereiche abgedeckt werden: | + | |
| - | - [A-Z] trifft auf alle Großbuchstaben zu | + | Es können auch ganze Zeichen-Bereiche abgedeckt werden: |
| - | - [a-z] trifft auf alle Kleinbuchstaben zu | + | |
| - | - [0-9] trifft auf alle Ziffern zu | + | * [a-z] trifft auf alle Kleinbuchstaben zu |
| + | * [0-9] trifft auf alle Ziffern zu | ||
| - | •^ Jetzt wird's etwas irritierend, | + | * ^ Jetzt wird's etwas irritierend, |
| 3. Wiederholungsangaben: | 3. Wiederholungsangaben: | ||
| | | ||
| - | •* steht für beliebig oft oder gar nicht. Beispiel: /abc[x]*d/ ist wahr, wenn zwischen abc und d gar nichts oder ein oder mehrere x stehen - es ist falsch, wenn irgendein anderes Zeichen dazwischen steht. | + | * * steht für beliebig oft oder gar nicht. Beispiel: /abc[x]*d/ ist wahr, wenn zwischen abc und d gar nichts oder ein oder mehrere x stehen - es ist falsch, wenn irgendein anderes Zeichen dazwischen steht. |
| - | •+ hat im Prinzip die gleiche Wirkung wie das *, nur das in diesem Fall die Suchzeichen mindestens einmal auftreten müssen. Beispiel: /.+/ ist wahr, wenn mindestens ein beliebiges Zeichen vorhanden ist. | + | |
| - | •? bedeutet: Kann da sein, muss aber nicht. Im Prinzip also wieder wie das *, nur das hier die maximale Trefferlänge 1 beträgt. | + | |
| - | •{n1,n2} schränkt den Grössenspielraum ein: n1 steht für die Mindestanzahl Treffer, n2 für die Maximalanzahl. Die Maximalanzahl kann bB weggelassen werden. Mit Komma ( " | + | |
| 4. Maskieren | 4. Maskieren | ||