美文网首页
4.正则表达式re

4.正则表达式re

作者: 互联网中的一个咸鱼 | 来源:发表于2019-08-06 09:35 被阅读0次

非打印字符

\f 匹配一个换页符
\n 匹配一个换行符
\t 匹配一个tab(制表位)

特殊字符

$     匹配字符串的结尾位置
                grep 'tar$'  file             查找tar结尾字符
^     匹配输入字符串的开始位置
                grep '^ch' file               查找ch开头的字符
 ()      标记一个子表达式的开始和结束,需要配合转义字符\使用
[]       中括号表达式的开始与结束
\*       匹配前面的一位字符零次或者多次,要匹配单纯的*符号,配合\
               grep 'ao*' file              查找ao或者aoo或者aoo...字符 
?      匹配前面的一位字符零次或一次
               grep 'aa?' file             查找a或者aa字符
\+      匹配前面的一个字符一次或多次
            echo " abcdaa" | grep -n 'a+'     查找n(>=1)个连续是a的字符
.        匹配换行符之外的任意单个字符
           echo a.  file                   查找一个任意两个字符的字符串,以a开头
\       转义字符
{}     标定限定符表达式的开始于结束
|      指明两项之间的一个选项

限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配

\*       匹配前面的一位字符零次或者多次,要匹配单纯的*符号,配合\
                         grep 'ao*' file              查找ao或者aoo或者aoo...字符
?      匹配前面的一位字符零次或一次
                      echo  "good"  | grep 'go?d'       查找god或者gd字符 
\+      匹配前面的一个字符一次或多次
                      echo " abcdaa" | grep -n 'a+'     查找n(>=1)个连续是a的字符
{n}   匹配确定的n次,do{2}:代表匹配两次o,即doo
{n,}  至少匹配n次,do{2,}:代表匹配两次及两次以上,比如doo,dooo,dooo
{n,m} 匹配n到m次,do{2,3}:代表匹配2到3次,可以是doo或者dooo
[1-9]{1,2}             随机匹配一个一个1到9的数字,并且随机出现一次或者两次
[1-9]?                匹配1-9之间的数字1次或者0次
[1-9]+                匹配1-9之间的数字,1次及其以上
#定位符
定位符能够将正则表达式固定到行首或行尾,一个单词的开头或者一个单词的结尾
>^    匹配输入字符串开始的位置
$      匹配输入字符串结尾的位置
\b     匹配一个字符边界,即字与空格键的位置
\B     匹配一个非字符边界
\b的位置是非常重要的
如果\b位于要匹配的字符串的前面,从单词的开头查找
\bCha             查找开头是Cha的单词
如果\b位于要匹配的字符串的后面,从单词的结尾开始查找
ter\b            查找结尾是ter的单词 
\Btar            查找在单词中出现tar的单词,不包括结尾和开头

进阶 grep

-A   n      符合条件行之后的n行也输出
-B   n      符合条件行之前的n行也输出
-C   n      符合条件行之后之前的n行都输出 
-o          只显示匹配到的字符
-c          显示统计数量
-l          只要文件名
-r          递归查找
-n          显示行号

在[]括号内,^代表的是取反,在括号外,^代表的是行首的意思

grep与正则的实例

grep -n 't[ae]st' file      查找file文件中的tast或者test
grep -n '[^t]ar' file        查找ar前面不是t的字符串
grep -n  '[^a-z]oo' file  查找oo前面不是小写字母的字符串
grep -A 2 'tar'  file      打印tar所在行及其之后的两行
grep -n  'g.*g' file       查找g开头g结尾的字符串

扩展正则:

+        重复一个或者一个以上的前一个RE字符
        echo " abcdaa" | grep -n 'a+'     查找n(>=1)个连续是a的字符
?        重复一个或者零个前一个RE字符
        echo  "good"  | grep 'go?d'       查找god或者gd字符 
|         A或者B
        grep 'aa|bb'  file                查找aa或者bb字符
              注意:|前后是一个整体aa或者bb,不是一个RE字符a或者b
()       
        gerp g(o|a)d file                 查找god或者gad字符
()+   扩展正则()与+的结合体
       grep 'A(abc)+B'                  查找A开头,B结尾,中间一个及其以上abc的字符

要想使用扩展正则,正常的grep没有该功能
可以使用 egrep 或者 grep -E 或者对扩展正则进行转义 +

相关文章

  • python05-正则表达式(一)

    正则表达式 python无正则表达式,通过别的模块re(regex模块)应用过来import re # 引入re模...

  • Python语言基础之——re模块和面向对象

    1.re模块 1.re.compile() compile(正则表达式) - 编译正则表达式,创建正则表达式对象 ...

  • Python 正则表达式——re模块介绍

    Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.ma...

  • Python 正则表达式——re模块介绍

    Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.ma...

  • 4.正则表达式re

    非打印字符 \f 匹配一个换页符\n 匹配一个换行符\t 匹配一个tab(制表位) 特殊字符 限...

  • python05-正则表达式(二)

    正则表达式(二) re模块(regex) python中没有正则表达式的函数,需要引入内置的re模块 re模块方法...

  • 正则表达式

    正则表达式1, 正则表达式的写法: var re=new RegExp('规则', '可选参数');var re=...

  • 正则表达式

    正则表达式1, 正则表达式的写法:var re=new RegExp('规则', '可选参数');var re=/...

  • 正则表达式

    正则表达式1, 正则表达式的写法:var re=new RegExp('规则', '可选参数');var re=/...

  • 正则

    正则表达式1, 正则表达式的写法:var re=new RegExp('规则', '可选参数');var re=/...

网友评论

      本文标题:4.正则表达式re

      本文链接:https://www.haomeiwen.com/subject/jrkhdctx.html