[Linux] Regular Expression

正则表达式符号表示

[:alnum:] 英文大小写及数字,即0-9,A-Z,a-z
[:alpha:]任何英文大小写字符,即A-Z,a-z
[:blank:]空格与[Tab]按键
[:cntrl:]键盘上的控制按键,即包括CR, LF, Tab, Del..等
[:digit:]数字,0-9
[:graph:]除了空格符(空格键与Tab按键)外的其他所有按键
[:lower:]小写字符,a-z
[:print:]任何可以被打印出来的字符
[:punct:]标点符号,即: " ' ? ! ; : # $ ...
[:upper:]大写字符,A-Z
[:space:]任何会产生空白的字符,包括空格键,[Tab],CR等等
[:xdigit:]16位进制的数字类型,包括0-9,A-F,a-f的数字与字符

 

RE字符意义与范例
^word  

意义:待搜寻的字符串word在行首

范例:搜寻行首为#开始的那一行,并列出行号

grep -n '^#' a.txt

word¥  

意义:带搜寻的字符串word在行尾

范例:将行尾为!的那一行打印出来,并列出行号

grep -n '!$' a.txt

.    

意义:代表【一定有一个任意字符】的字符

范例:搜寻的字符串可以是(eve)(eae)(eee)(e e),但不能仅有(ee)!亦即e与e中间一定仅有一个字符

grep -n 'e.e' a.txt

\    

意义:转义字符,将特殊符号的特殊意义去除

范例:搜寻含有单引号‘的那一行

grep -n \' a.txt

*    

意义:重复零个到无穷多个的前一个RE字符

范例:找出含有(es)(ess)(esss)等等的字符串,注意,因为*可以是0个,所以es也是符合带搜寻字符串。另外,因为*为重复【前一个RE字符】的符号,因此,在*之前必须要紧接着一个RE字符,例如任意字符串为【。*】

grep -n 'ess*' a.txt

[list]  

意义:字符集合的RE字符,里面列出想要获取的字符

范例:搜寻含有gl或gd的那一行,需要特别注意的是,在[]当中【谨代表一个待搜寻的字符】例如【a[afl]y】代表搜寻的字符串可以是aay, afy, aly即[afl]代表a或f或l的意思

grep -n 'g[ld]' a.txt

[n1-n2]  

意义:字符集合的RE字符,里面列出想要获取的字符范围

范例:搜寻含有任意数字的那一行,需特别注意,在字符集合[]中的减号-是有特殊意义的,他代表两个字符之间的所有连续字符!但这个连续与否与ASCII编码有关,因此,你的编码需要在设定正确

grep -n '[A-Z] a.txt

[^list]  

意义:字符集合的RE字符,里面列出不要的字符串或范围

范例:搜寻的字符串可以是(oog)(ood)但不能是(oot),那个^在[]内时,代表的意思是反向选择

grep -n 'oo[^t]' a.txt

\{n,m\}  

意义:连续n到m个的【前一个RE字符】

意义:若为\{n\}则是连续n个的前一个RE字符

意义:若是\{n,\}则是连续n个以上的前一个RE字符

范例:在g与g之间有2个到3个的o存在的字符串,即(goog){gooog}

grep -n 'go\{2,3\}g' a.txt

转载于:https://www.cnblogs.com/immjc/p/7597760.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值