先决条件: 格雷普
基本正则表达式
正则表达式能够以非常灵活和简洁的方式匹配“文本字符串”。“文本字符串”可以进一步定义为单个字符、单词、句子或特定的字符模式。
就像shell的通配符一样,它用一个表达式匹配相似的文件名,grep使用一个不同类型的表达式来匹配一组相似的模式。
- [ ] :匹配一组字符中的任意一个
- []带连字符 :匹配范围字符中的任意一个
- ^ :它后面的图案必须出现在每行的开头
- ^与[]一起: 模式不能包含指定集合中的任何字符
- $ :它前面的图案必须出现在每行的末尾
- (点) :匹配任意一个字符
- (反斜杠) :忽略其后面字符的特殊含义
- * :上一个字符的出现次数为零或更多
- (点)* :没有或任何字符数。
例子
(a) [] :匹配一组字符中的任意一个
-
$grep “New[abc]” filename
它将搜索模式指定为:
Newa , Newb or Newc
-
$grep “[aA]g[ar][ar]wal” filename
它将搜索模式指定为
Agarwal , Agaawal , Agrawal , Agrrwal agarwal , agaawal , agrawal , agrrwal
(b) 将[]与连字符连用 :匹配范围字符中的任意一个
-
$grep “New[a-e]” filename
它将搜索模式指定为
Newa , Newb or Newc , Newd, Newe
-
$grep “New[0-9][a-z]” filename
它将搜索模式指定为:New后跟一个数字,然后是一个字母表。
New0d, New4f etc
(c)使用^ :它后面的图案必须出现在每行的开头
-
$grep “^san” filename
搜索以san开头的行。它将搜索模式指定为
sanjeev ,sanjay, sanrit , sanchit , sandeep etc.
-
$ls –l |grep “^d”
仅显示目录列表
-
$ls –l |grep “^-”
仅显示常规文件列表
(d) 将^与[]一起使用 :图案不得包含指定集合中的任何字符
-
$grep “New[^a-c]” filename
它指定包含单词“New”后跟除“a”、“b”或“c”以外的任何字符的模式
-
$grep “^[^a-z A-Z]” filename
搜索以非字母字符开头的行
(e) 使用$ :它前面的图案必须出现在每行的末尾
$ grep "vedik$" file.txt
(f) 使用。(点) :匹配任意一个字符
$ grep "..vik" file.txt $ grep "7..9$" file.txt
(g) 使用(反斜杠) :忽略其后面字符的特殊含义
-
$ grep "New.[abc]" file.txt
它将搜索模式指定为新模式。[abc]
-
$ grep "S.K.Kumar" file.txt
它将搜索模式指定为
S.K.Kumar
(h) 使用* :上一个字符的出现次数为零或更多
$ grep "[aA]gg*[ar][ar]wal" file.txt
(i) 使用(点)* :没有或任何字符数。
$ grep "S.*Kumar" file.txt
本文由 阿克谢·拉吉普特 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。