4

这是我从未记住的基本正则表达式技术。假设我正在使用一个相当通用的正则表达式实现(例如,grep 或 grep -E)。如果我要做一个文件列表并匹配任何以.styor结尾的文件.cls,我会怎么做?

4

3 回答 3

4
ls | grep -E "\.(sty|cls)$"
  • \.从字面上匹配 a "."- 未转义的.匹配任何字符
  • (sty|cls)- 匹配"sty""cls"- | 是一个or,括号限制表达式。
  • $强制匹配在行尾

请注意,您需要grep -Eor egrep,而不是grep -e因为这是模式列表的不同选项。

于 2008-09-02T08:14:22.183 回答
2
egrep "\.sty$|\.cls$"
于 2008-09-02T08:08:36.473 回答
2

此正则表达式:
\.(sty|cls)\z
将匹配任何以 .sty 或 .cls 结尾的字符串
编辑:
对于 grep \z 应替换为 $ 即 \.(sty|cls)$ ,如jelovirt建议的那样。

于 2008-09-02T08:10:16.873 回答