Hallo,
Vielleicht nicht ganz das richtige Board, aber welche Zeichen matcht dieser Regex:
(ab|ba)*
und dieser
(ab|ba)
Danke & Lg
Hallo,
Vielleicht nicht ganz das richtige Board, aber welche Zeichen matcht dieser Regex:
(ab|ba)*
und dieser
(ab|ba)
Danke & Lg
Hallo!
Vielleicht nicht ganz das richtige Board, aber welche Zeichen
matcht dieser Regex:(ab|ba)*
Zusammensetzungen von „ab“ und „ba“ in beliebiger Anzahl (also auch 0-mal) und Reihenfolge, greedy.
und dieser
(ab|ba)
„ab“ oder „ba“
„matcht“ im Sinne von Muster passt auf komplette Zeichenkette. Manche konkreten Implementierungen haben match-Funktionen/Methoden, die \A und \Z implizit setzen, andere nicht. Da muss man immer in die Doku gucken.
Jan
Hallo,
Vielleicht nicht ganz das richtige Board, aber welche Zeichen
matcht dieser Regex:(ab|ba)*
die Zeichenfolge ‚ab‘ oder ‚ba‘ jeweils 0x oder beliebig oft
hintereinander, er „matcht“ also auch den Text: „Hier iss nix drin“.
Es gibt dann noch die Form: (ab|ba)+
das " matcht" die Zeichenfolge ‚ab‘ oder ‚ba‘ beliebig oft
hintereinander, es muß aber *mindestens einmal* auch dastehen.
und dieser
(ab|ba)
die Zeichenfolge ‚ab‘ oder ‚ba‘ jeweils genau 1x,
z.B.: „Hier iss ab drin“ oder : „Hier iss ba drin“.
Grüße
CMБ
Hallo F22 Raptor,
das kommt darauf an, welcher Automat für reguläre Ausdrücke zum Einsatz kommt. Unter UNIX suchst Du mit „(ab|ba)*“ nach Zeichenketten wie „ab|ba“, „ab|baab|ba“, „ab|baab|baab|ba“ usw.
Bei Perl suchst Du damit nach Folgen wie „ababab“, „abba“ oder „abbaab“.
Bei „(ab|ba)“ würdest Du unter UNIX „ab|ba“ finden und mit Perl „ab“ oder „ba“.
Mehr siehst z.B. hier http://user.cs.tu-berlin.de/~kray/unix/regexp.html
Gruß
Volkmar
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Jan,
(ab|ba)*
Zusammensetzungen von „ab“ und „ba“ in beliebiger Anzahl (also
auch 0-mal) und Reihenfolge, greedy.und dieser
(ab|ba)„ab“ oder „ba“
„matcht“ im Sinne von Muster passt auf komplette Zeichenkette.
Oops, da warst Du schneller!
Grüße
CMБ
Hallo!
das kommt darauf an, welcher Automat für reguläre Ausdrücke
zum Einsatz kommt. Unter UNIX suchst Du mit „(ab|ba)*“ nach
Zeichenketten wie „ab|ba“, „ab|baab|ba“, „ab|baab|baab|ba“
usw.
Was meinst Du mit „Unter Unix“? Dort wo „|“ kein Sonderzeichen ist, sind es die runden Klammern wohl meist auch nicht (vi, sed, grep). Dann würde „(ab|ba)*“ Zeichenketten wie „(ab|ba“, „(ab|ba)“, „(ab|ba)))))“ erkennen.
Jan
Hallo Jan,
als ich das letzte mal „man 5 regexp“ in einem System V UNIX aufgerufen habe, konnte man mit den runden Klammern Gruppierungen definieren, auf die man im Ersetzungskommando mittel \1 bis \9 zurückgreifen kann (z.B. bei grep in der Ursprungsform usw.). egrep hingegen beherrscht auch | als Oder-Verknüpfung, wie perl.
Deshalb auch mein Hinweis auf den verwendeten Automaten.
Wenn in einigen Beschreibungen (zu UNIX) { und ) als Gruppierungssequenz angeführt werden, liegt das wohl eher daran, das Shell-Sonderzeichen maskiert (escaped) werden müssen, wenn sie nicht in einfachen Anführungszeichen eingeschlossen sind. Versuche doch einfach mal die folgende Kommandosequenz unter UNIX:export testvar=ABCD
echo $testvar
echo „$testvar“
echo ‚$testvar‘
echo $testvar
Du solltest als Ergebnis der echo’s erhalten:ABCD
ABCD
$testvar
$testvarSo wie es sich hier mit dem $-Zeichen als Variablen-Kennzeichen verhält, so verhält es sich auch mit \ ( ) | { } in regexp-Ausdrücken, die nicht in '-Zeichen eingeschlossen sind.
In „echten“ regulären Ausdrücken wird auf diese Maskierungen erst einmal verzichtet.
Gruß
Volkmar
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]