strings / Zeichenketten matching in der tcsh
Ich habe Mühe versucht, einen prägnanten Vergleich-Anweisung zu vermeiden, eine Reihe von "wenn a = b oder a = c oder a = d oder a = e", etc.
Statt, ich bin versucht die regex-und pattern-matching-wie man in perl.
mit
set st = "red"
die Linie
if ($st =~ gelb|blau|rot|grün)
funktioniert einfach nicht (wenn: Expression Syntax.)
Ich habe versucht, mit Anführungszeichen, Klammer, aber ich bekomme nie das erwartete Ergebnis, falls kein Fehler.
gibt es eine Möglichkeit zu vermeiden das schwere Konstrukt:
if ($st == gelb) || ($st == blau) || ($st == red) || ($st == grün) ?
Oder anderen Weise zu Fragen, die gleiche Frage: hat die tcsh erlauben etwas wie "wenn ein string enthält string b"? Ich konnte nicht finden jede Vorstellung von substring in tcsh-Referenz.
Dank einer million!
InformationsquelleAutor MadMacs | 2011-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, tsch, aber ein Blick auf die info dieser Seite (unter Sonderzeichen):
http://www.tcsh.org/tcsh.html/Filename_substitution.htmlhttp://www.cs.duke.edu/csl/docs/csh.html
es scheint, dass Sie brauchen, um Ihre surround-Farben mit Klammern:
InformationsquelleAutor Gerrat
Dem Ding auf der rechten Seite des
~=
- operator ist ein "glob-Muster", nicht einen regulären Ausdruck. (Zum Beispiel, in einem regexp.
entspricht einem beliebigen Zeichen, und.*
entspricht null oder mehr beliebige Zeichen; das glob-Muster-äquivalente?
und*
.){...,...,...}
ist Teil der syntax der glob-Muster.man tcsh
für eine vollständige Beschreibung.Wenn Sie brauchen, um übereinstimmung mit regulären Ausdruck, können Sie die
expr
Befehl;man expr
oderinfo expr
für details.InformationsquelleAutor Keith Thompson