第六章 正则表达式

03-25 1651阅读 0评论

第六章 正则表达式

1,正则表达式概念

1,正则表达式(re),又称规则表达式。用来处理字符串的方法,以行为单位进行字符串的处理,通过一些特殊字符,让用户完成查询,删除,替换等目的。

第六章 正则表达式,第六章 正则表达式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,地址,第1张
(图片来源网络,侵删)

2,在大多数程序里,RE都被置于两个正斜杠之间,例如/I[oO]ve/。

3,RE通常缩写成regex,单数有regexp,regex;复数有regexps,regexes,regexen。

2,正则表达式元字符

1,RE由普通字符和元字符组成。

  • 普通字符:包含大小写字母和数字。
  • 元字符:具有特殊含义。

    2,元字符通常由各种执行模式匹配操作的程序来解析

    第六章 正则表达式

    第六章 正则表达式

    第六章 正则表达式,第六章 正则表达式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,地址,第4张
    (图片来源网络,侵删)

    3,正则表达式语法

    RE是由普通字符(a~z)及特殊字符(称为元字符)组成的文字模式。

    第六章 正则表达式

    RE可以是单个字符,字符集合,字符范围,字符间的选择等任意组合

    4,正则表达式运算符优先级

    RE从左到右进行计算。相同优先级的RE从左到右运算,不同优先级的RE运算先高右低

    第六章 正则表达式

    5,正则表达式匹配规则

    基本模式匹配

    **模式是RE最基本的元素。**它是一组描述字符串特征的字符组成的字符集,用于匹配字符串。

    第六章 正则表达式,第六章 正则表达式,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,地址,第7张
    (图片来源网络,侵删)
    \n:换行
    \r:回车
    \t:制表符
    \f:换页
    

    字符簇

    用连字符可以表示一个字符的范围。

    [a-z] #匹配所有 的小写字母
    [A-Z] #匹配所有的大写字母
    [a-zA-Z] #匹配所有的字母
    [0-9] #匹配所有的数字
    #^匹配开头(当在方括号里表示非);$匹配结尾
    ^[^0-9][0-9]$	#第一个字符不能是数字
    [^a-z]	#除字母外的所有字符
    [^$]	#空行
    

    第六章 正则表达式

    第六章 正则表达式

    第六章 正则表达式

    #花括号的三种用法:
    (1){x}:前面的字符只出现x次。
    (2){x,}:前面的内容出现x或多次。
    (3){x,y}:前面的内容至少出现x次,但不超过y次。
    ^[a-zA-Z0-9_ ]{1, }$	#所有包含一个以上的字母,数字或下画线的字符串
    ^[1-9][0-9]{0, }$	#所有的正整数
    ^\-{0,1} [0-9]{1, }$	#所有的整数
    ^[ - ]?[0-9]+\.?[0-9]+$或^\-?[0-9]{1, }\.?[0-9]{1, }$	#所有的浮点数
    

    6,grep命令

    grep命令简介

    grep命令是一种强大的文本搜索工具,是Linux文本处理工具中的三剑客之一。

    通常grep有三个版本:grep、fgrep,egrep。

    grep命令语法格式

    #语法格式:
    grep	[options]	pattern		[filename]
    找到匹配的表达式:	grep返回的退出状态为0
    没找到匹配的表达式:	grep返回的退出状态为1
    找不到指定文件:	grep返回的退出状态为2
    
    grep命令,可以来自标准输入或管道
    

    grep命令使用方式

    第六章 正则表达式

    第六章 正则表达式

    -q,-v,-R(-r),-A,-B,-C,-o
    
    针对“--color” 选项,在.bashrc 或者.bash profile 文件中加入alias grep=grep -color- auto,生效后,grep的搜索结果自动高亮匹配。
    针对“搜索字符串”选项,使用正则表达式时必须用单引号'括起来,避免与Shell的元字符冲突。结合grep 与正则表达式,能快速准确地找到希望匹配的字符串和行,提高工作效率。
    

    grep命令结合正则表达式使用

    第六章 正则表达式

    第六章 正则表达式

    其中,“\1”、“2”、$是后向引用,引用前面的分组括号中的模式所匹配的字符。在某行文本的检查中,如果使用“()”, 则分组括号中的模式匹配的某内容可以被引用。扩展正则表达式与正则表达式略有不同。

    第六章 正则表达式

    第六章 正则表达式

    grep命令结合正则表达式案例实战

    1,#使用egerp匹配文件中root字符串
    [root@localhost ~]# egrep 'root' /etc/passwd /etc/shadow /etc/hosts
    /etc/passwd:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:root:$YwwVMLULtamj9HkA$abG.jwCmQWMr.W9rWibB6y6WGfuVKM/BDdtCoc6OhKnfgHRLvGfeXnA37BILKUIlKMIplJyRd7W6X1jQIzCP.0::0:99999:7:::
    2,#使用egrep列出匹配行的文件名
    [root@localhost ~]# egrep -l 'root' /etc/passwd /etc/shadow /etc/hosts
    /etc/passwd
    /etc/shadow
    3,#在每一行之前加上该行在文件中的相对行号
    /etc/passwd:1:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:10:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:1:root:$YwwVMLULtamj9HkA$abG.jwCmQWMr.W9rWibB6y6WGfuVKM/BDdtCoc6OhKnfgHRLvGfeXnA37BILKUIlKMIplJyRd7W6X1jQIzCP.0::0:99999:7:::
    4,#使用egrep匹配IP地址
    [root@localhost ~]# egrep '([0-9](1,3)\.){3}[0-9]{1,3}'
    5,#找出/etc/rc.d/init.d/functions文件中行首为某单词(包含下划线)后面跟一个小括号的行
    [root@localhost ~]# cat /etc/rc.d/init.d/functions | grep -Eo "^[a-zA-Z]*_*.*\(\)"
    6,#列出/etc命令下所有以.conf结尾的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
    [root@localhost ~]# find /etc/ -name '*.conf' | grep -Eo "[^/]*(\.conf)$" |tr 'a-z' 'A-Z' >/tmp/etc.conf
    7,#显示/proc/meminfo文件中以大小s开头的行
    [root@localhost ~]# cat /proc/meminfo |grep "^[sS]"
    8,#显示/etc/passwd文件中不以/bin/bash结尾的行。
    [root@localhost ~]# cat /etc/passwd |grep -v "/bin/bash$"
    9,#找出“netstat -tan”,命令的结果中以“LISTEN"后跟任意多个空白字符结尾的行。
    [root@localhost ~]# netstat -tan |grep "LISTEN[[:space:]].*"
    10,#显示CentOS 7上所有系统用户的用户名和UID。
    [root@localhost ~]# cat /etc/passwd|cut -d ":" -f1,3|grep -v "root"|grep -v "[0-9]\{4,\}"
    11,#取出文件/ete/inittab文件中,以#开头,且后面跟一个空格的行。
    [root@localhost ~]# grep "^#[[:space:]]" /etc/inittab
    12,#使用egrep取出/etc/rc.d/init.d/functions中其基名。
    [root@localhost ~]# echo /etc/rc.d/init.d/functions |grep -o "\b[[:alnum:]]+/*$"
    13,#取出grep选项-R。
    [root@localhost ~]# grep --help|grep "\-R"
    

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1651人围观)

还没有评论,来说两句吧...

目录[+]