正则表达式(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字符的意思

































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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值