reguläre Ausdrücke

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

reguläre Ausdrücke

Beitrag von Colttt » 09.07.2013 21:58:44

ich habe hier grade folgendes:
http://www.lpi-academy.de/sim/result/ hat geschrieben:Auf welche Zeilen passt der reguläre Ausdruck ^a.*[xy]z$ (unter anderem)?

1. axz, ayz und abcxyz
2. a.xz, b.xz und c.xz
3. aby, acz und abcxyz
4. az, axz und abcxyz
101-146 · Erklärung verstecken · Frage diskutieren
Von dieser Frage dürfen Sie sich nicht durcheinander bringen lassen. Wenn Sie sich den regulären Ausdruck genau anschauen, dann wird Ihnen sicher gleich klar, dass jede passende Zeile mit a anfangen und mit z aufhören muss. Die Antworten 2 und 3 fallen also sofort unter den Tisch. Außerdem muss vor dem z am Zeilenende entweder ein x oder ein y stehen -- az ist also nicht erlaubt, und das schließt Antwort 4 aus. Die drei Zeilen in Antwort 1 dagegen passen alle auf den regulären Ausdruck, diese Antwort ist also richtig.
die sagen antwort 1 ist richtig, aber dort ist doch garkein Punkt . mit bei?! das versteh ich nicht.
Debian-Nutzer :D

ZABBIX Certified Specialist

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: reguläre Ausdrücke

Beitrag von cronoik » 09.07.2013 22:06:15

Hi,

der * sagt doch das der Punkt zwischen 0 und unendlich mal vorkommen kann.

EDIT: ... und der Punkt ist ein Jokerzeichen. Siehe auch Caes Post.
Zuletzt geändert von cronoik am 09.07.2013 22:26:21, insgesamt 2-mal geändert.
Hilf mit unser Wiki zu verbessern!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: reguläre Ausdrücke

Beitrag von Cae » 09.07.2013 22:17:25

Wobei der Punkt . fuer "beliebiges Zeichen" steht. Bei 1. ist .* im ersten und zweiten Match einfach gar nix, im dritten steht's einzeln fuer bcx. Das y wird von der Klammer [xy] gematcht, was aber nur ein Zeichen ersetzt, daher gehoert das x noch zur .*-Gruppe.

? ist ja/nein, + eins oder mehr, * null oder mehr. D.h. wenn da .+ gestanden haette, wuerde 1. ebenfalls nicht matchen, weil fuer die ersten zwei Matches mindestens ein (beliebiges) Zeichen nach dem a fehlen wuerde.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: reguläre Ausdrücke

Beitrag von Colttt » 09.07.2013 22:34:37

ahh ok, ich dachte das . auch was festes ist und nicht mit unter die reg Exp fällt..
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
hikaru
Moderator
Beiträge: 13969
Registriert: 09.04.2008 12:48:59

Re: reguläre Ausdrücke

Beitrag von hikaru » 10.07.2013 07:53:21

Die Form der Fragestellung ist äußerst unglücklich:
Auf welche Zeilen passt der reguläre Ausdruck ^a.*[xy]z$ (unter anderem)?
Dann kommt sowas:
1. axz, ayz und abcxyz
Darauf matcht die Regex natürlich nicht, denn die Zeile fängt mit 1 an.

Aber selbst wenn man die Nummerierung weglässt wird die nächste Zeile zum Stolperstein:
a.xz, b.xz und c.xz
Die Zeile matcht natürllich, denn alles zwischen dem a am Anfang und dem x vor dem z wird von .* gefressen.

Man könnte mir jetzt natürlich Korinthenkackerei vorwerfen, aber etwas Ähnliches ist mir in der Schule mal in einer Matheklausur passiert. Dort war eine Formel der folgenden Bauart gegeben:
x => y+z
x ist größer/gleich y+z ergab in dem Zusammenhang aber überhaupt keinen Sinn und ich habe etwa 10 Minuten mit Grübeln vertan bis der Groschen fiel, dass => nicht als größer/gleich sondern als Zuweisungsoperator zu lesen ist. In einer Prüfungssituation ist sowas ärgerlich.

Antworten