这是我从未记住的基本正则表达式技术。假设我正在使用一个相当通用的正则表达式实现(例如,grep 或 grep -E)。如果我要做一个文件列表并匹配任何以.sty
or结尾的文件.cls
,我会怎么做?
wspr
问问题
2483 次
3 回答
4
ls | grep -E "\.(sty|cls)$"
\.
从字面上匹配 a"."
- 未转义的.
匹配任何字符(sty|cls)
- 匹配"sty"
或"cls"
- | 是一个or
,括号限制表达式。$
强制匹配在行尾
请注意,您需要grep -E
or 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 回答