正则表达式以匹配唯一的子字符串

时间:2020-03-05 18:46:18  来源:igfitidea点击:

这是我从未想过的基本正则表达式技术。假设我使用的是相当通用的regex实现(例如grep或者grep -E)。如果要列出文件并匹配以.sty或者.cls结尾的文件,我该怎么做?

解决方案

回答

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

回答

此正则表达式:
\。(sty | cls)\ z
将匹配任何以.sty或者.cls结尾的字符串
编辑:
对于grep \ z应该用$代替
\。(sty | cls)$
如耶洛韦建议。

回答

ls | grep -E "\.(sty|cls)$"
  • \ .字面上匹配一个"。"-一个未转义的.匹配任何字符
  • (sty | cls)-匹配" sty"或者" cls"-the |是一个"或者",并且方括号限制了表达式。
  • $强制匹配在行尾

注意,我们需要grep -E或者egrep,而不是grep -e,因为这是模式列表的另一种选择。