正则表达式(RE)
正则表达式介绍就是专门处理字符串的方法,是以行为单位来进行字符串处理的行为,通过一些符号的辅助,让用户可以轻易的达到查找,删除,替换某特定字符串的处理程序。 是一种表示法,只要程序支持这种表示法,那么该程序就能够作为正则表达式处理之用。 语系对正则表达式是有影响的 LANG=C是:1 2 3... A B C D ....a b c d LANG=zh_CN 0 1 2 3 a A b B.... 可以看出语系不一样的所选择的结果可能会有所不同,因为他们的编码顺序不一样、
特殊符号
格式都是[:symbol:]
alnum:代表大小写英文和字符
alpha:代表任何英文大小写字符
blank:代表空格和tab
cntrl:代表键盘上面的控制按键,包括CR,LF,Tab,Del等
CR是回车符,LF是换行符。回车是把光标移到该行开始,换行是把光标下移一行。在WINDOWS操作系统中,文本文件换行需要两个字符表示,即<CR><LF>。Linux或Unix中换行只用一个LF表示就可以了。
digit:0-9数字
graph:除了空格键和tab以外的所有的按键
lower:代表小写的字符
print:可以打印的
punct:代表标点符号
upper:大小字符
space:任何产生空白的字符
xdigit:16进制的数字类型
grep的一些高级参数grep [ -A ][ -B] '搜寻的字符串' filename -A 表示在所加的参数n,第n行后开始, -B 表示在所加的参数n,第n前查找, grep是按照行来显示,显示的是输入参数符合的那一行数据,不符合的就丢弃
基础表达式练习
情景一 查找特定的字符串 简单: grep -n 'str_obj' filename 反向选择加 -v 情景2:利用中括号来查找集合字符 grep -n ‘t[ae]est filename 比如这里找的是test 或者tast,[]里面不论有多少个字符都只代表其中的一个 [a-z]表示小写字母,[0-9]可以表示数字,注意的是中间的那个'-‘号 ^ 如果不再[]内部匹配的是开头,在里面表示反向选择, $则匹配结尾
常用的选取空行 grep -n '^$' filename
情景三: 任一个字符‘.‘和重复字符‘*' 小数点代表任意一个字符,星号代表0到无穷个字符 小数点好理解,星号不好 比如 要想选择至少两个’oo‘以上的字符串时,需要ooo* 即 当是'o*'的时候,表示是具有空字符,或者具有一个以上的'o'字符,这里空字符就是没有字符都可以的意思 当'oo*'的时候,第一个o必须存在,第二个o则是可以用可以无的多个o ,o oo ooo都是符合的 所以要至少列举两个o以上的字符串需要的是ooo*, 所以 .*可以表示0个或者多个字符的意思
情景4: 限定连续的RE字符范围: 限定范围字符是{} 但是{}有特殊含义,用把它去掉特殊意义 grep-n ‘go{2,5}g' filename 寻找g后面带着2到5个o的字符串、
正则表达式的特殊字符一般在命令行输入的通配符并不相同,比如*在命令行是无穷多个字符的意思,但是在正则表达式是0到无穷个前面那个RE字符的意思 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |