正则表达式学习笔记

1.1 正则表达式,区分大小写
echo "This is a test" | sed -n '/this/p' 将不会有输出
----
$ echo "This is a test" | sed -n '/This/p'
This is a test
 
1.2 正则表达式,不用将单词完整写出
$ echo "The books are expensive" | sed -n '/book/p'
The books are expensive
 
1.3 空格在正则表达式中是一样的,没有其他区别。  “ber 1” 匹配“number 1”
$ echo "This is line number 1" | sed -n '/ber 1/p'
This is line number 1
 
1.4  在正则文本模式中不能单独使用 特殊字符(共计11个)
     . * []^ $ {} \ + ? | ()        ".*[]^$\"  属于基础正则表达式BRE      “{}+?|()”属于扩展正则表达式 ERE(某些不会支持)
 
    要使用需要使用转义符  通常是 加上反斜杠  \.  "\?"   "\$"   "\\"       斜杠最好也做转义处理 "\/"    
 
    1.4.1 “.”匹配除换行符之外的任意单个字符    
    可以匹配空格,但必须要占一个字符
    
    
    1.4.2“[]”字符组 
    "[ch]at"只匹配 cat、hat。
    
    忽略大小写
    $  echo "yEs" | sed -n '/[Yy][Ee][Ss]/p'
    yEs
    "[^]"排除型字符组(取反)   ,但以at开头的无法匹配,因为字符组仍要占一个字符
     
    字符组区间 ,[0-9] 任意数字。 区间采用 系统采用的字符集。
 
    “[a-ch-m0-9]”匹配 a-c 或 h-m 或 0-9 的字符
    
 
     1.4.3 "*" 匹配0个或多个特定字符
        i3*k  匹配了0个或多个3
    
    配合上字符组
    
 
 
 
     1.4.4 特殊字符(估计能用到的场合比较特殊)
描 述
[[:alpha:]]
匹配任意字母字符,不管是大写还是小写
[[:alnum:]]
匹配任意字母数字字符0~9、 A~Z或a~z
[[:blank:]]
匹配空格或制表符
[[:digit:]]
匹配0~9之间的数字
[[:lower:]]
匹配小写字母字符a~z
[[:print:]]
匹配任意可打印字符
[[:punct:]]
匹配标点符号
[[:space:]]
匹配任意空白字符:空格、制表符、 NL、 FF、 VT和CR
[[:upper:]]
匹配任意大写字母字符A~Z
1.5 锚字符(已***开头、已***结尾)  因为,正则本来是匹配数据流的任意地方
 
    1.5.1“^” 锁定行首
    
    如果将该符号放到其他地方,他就是普通字符
$  echo "This ^ is a test" | sed -n '/his ^/p'
This ^ is a test
 
 
 
     1.5.2 $”锁定行尾
    
 
    
 
    1.5.3 组合锚点
 
        过滤掉空行
    
 
1.6 扩展正则表达式
    “{}+?|()”属于扩展正则表达式 ERE(某些不会支持,比如sed)
 
    1.6.1“?”匹配出现0-1次的字符  
    
 
    1.6.2“+”匹配出现1-n次的字符,该字符未出现,则匹配失败
    
 
    1.6.3“{}” 为可重复的正则表达式指定一个上限,称为间隔(interval)
    {3} 某字符出现3次, {2,4}某字符出现2-4次
    为了识别正则表达式间隔,awk指定  --re- interval 命令
    
    
 
    1.6.4“|”或运算,满足任意一个即可匹配
    格式如下:   【expr1】|【expr2|】    awk '/[0-9]|ab/{print $0}'  匹配0-9数字或 ab的字符
 
    1.6.5“()”表达式分组,其内容结果相当于字符串
    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值