Linux正则表达式


Linux正则表达式
 
1.一些特殊符号
 
 
2.行首控制符^、行尾控制符$
 
[html] 
找出行首包含the的:  
[root@www ~]# grep -n '^the' regular_express.txt   
开始为小写字母的:  
# grep -n '^[a-z]' regular_express.txt   
那如果我不想要开头是英文字母:  
# grep -n '^[^a-zA-Z]' regular_express.txt   
开头不是英文字母的:  
[root@www ~]# grep -n '^[^a-zA-Z]' regular_express.txt   
显示空白行:  
[root@www ~]# grep -n '^$' regular_express.txt   
不显示空白行和带#号的行:  
# grep -v '^$' /etc/syslog.conf | grep -v '^#'  
 
3.正则表达式中。“.”代表绝对有一个任意字符的意思;而“*”代表重复前一个到无穷次的意思
 
[cpp] 
寻找g开头和d结束的包含四个字符:  
# grep -n 'g..d' regular_express.txt  
寻找oo, ooo, oooo 等等癿数据,也就是说,至少要有两个o 以上:  
# grep -n 'ooo*' regular_express.txt(前两个o必须存在,第三个o重复次数不限)  
寻找g开头和g结束的字符串,中间可有可无  
[root@www ~]# grep -n 'g.*g' regular_express.txt  
我想要找出两个到五个o的连续字符串,该如何作?这时候就得要使用到限定范围癿字符{}了。 但因为 {} 在 shell 是有特殊意义的。必须要使用跳脱字符 \ 让他失去特殊意义才行。至亍 {}的语法法是这样的,假设我要找到两个o的字符串,可以是:  
[root@www ~]# grep -n 'go\{2,5\}g' regular_express.txt  
 
 
4.正则表达式中特殊字符 
 
   (1) ^word:待搜寻的字符串(word)在行首!
 
             搜寻“#”开始的:grep -n '^#' regular_express.txt
 
  (2)word$:将行尾为 !癿那一行打印出杢,幵列出行号 
 
             搜寻“!”结尾的:grep -n '!$' regular_express.txt
 
  (3)\:将特殊符号癿特殊意义去除!
 
              搜寻吨有单引号 ' 的那一行:grep -n \' regular_express.txt
 
  (4)*:重复零个到无穷多个癿前一个字符
 
               搜寻es开头,后面s重复2次以上的:grep -n 'ess*' regular_express.txt
 
  (5)[list]:字符集合的RE字符,里面列出想要选择的字符!
 
              搜寻gl或者gd的行:grep -n 'g[ld]' regular_express.txt
 
  (6)字符集合的RE字符,里面列出不要的字符串串范围!
 
               搜寻的字符串可以是 (oog) (ood)但不能是 (oot):rep -n 'oo[^t]' regular_express.txt
 
  (7)[n1-n2]:字符集合的 RE字符,里面列出想要包括的字符范围!
 
             搜寻含有数字的:grep -n '[0-9]' regular_express.txt
 
  (8)\{n,m\}:连续 n到 m 个的『前一个 RE字符』
 
            搜寻在g 不g之间有2个到3个o存在的字符串:grep -n 'go\{2,3\}g' regular_express.txt
 

相关内容

    暂无相关文章