2008-09-02 29 views
4

Hier ist eine grundlegende Regex-Technik, an die ich mich nie erinnern konnte. Nehmen wir an, ich verwende eine ziemlich generische Regex-Implementierung (z. B. grep oder grep -E). Wenn ich eine Liste von Dateien erstellen und jedes Ende in entweder .sty oder .cls abgleichen würde, wie würde ich das tun?Regex für eindeutige Teilstrings

Antwort

4
ls | grep -E "\.(sty|cls)$" 
  • \. Matches buchstäblich ein "." - ein unescaped . jedes Zeichen
  • (sty|cls) - Spiel "sty" oder "cls" - die | ist ein or und die Klammern begrenzen den Ausdruck.
  • $ zwingt das Spiel am Ende der Leitung

Hinweis zu sein, Sie grep -E oder egrep wollen, nicht grep -e wie für Listen von Mustern eine andere Option.

2
egrep "\.sty$|\.cls$" 
2

Diese Regex.
\ (sty | cls) \ z
wird beendet jeden String mit .sty oder .cls
EDIT:
für grep \ z ersetzt werden sollte $ ie \. (sty | cls) $ als jelovirt vorgeschlagen.

Verwandte Themen