正则表达式、扩展正则表达式详解.docx

正则表达式、扩展正则表达式详解.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正则表达式、扩展正则表达式详解

1).简单的grepgrep [option] PATTERM [file...]#grep root /etc/passwd-E:使用扩展正则表达式-F:使用固定字符串进行匹配-l:列出匹配模式的文件名称,而不是打印匹配的行-q:静默模式,匹配grep则成功退出,不匹配则写入标准输出-S:不显示错误信息-i:忽略字符大小写--color:显示颜色# alias grep=grep --color# grep root /etc/passwd-v :反向查找,显示没有被模式匹配到的行-o:只显示被模式匹配到的字符串2).基本正则表达式meta字符.:匹配任意单个字符# grep r..t /etc/passwd*:匹配其前面的字符任意次a*b b,aab, 即a出现任意次以后跟一个b^:锚定行首,此字符后面的任意内容必须出现在行首# grep ^r..t /etc/passwd$:锚定行尾,此字符前面的任意内容必须出现在行尾# grep w$ /etc/passwd# grep r..t$ /etc/passwd^...$:整个字符串^$:空白行# grep ^$ /etc/passwd 查看空白行$ cc -E foo.c | grep -v ^$ foo.out#先使用grep -v显示不匹配的行(即非空白行),重定向到新的文件,从而过滤文件中空白行链接:cc -E :这个选项是相对标准的,它允许修改命令行以使编译程序把预先处理的C文件发到标准输出,而不实际编译代码.在查看C预处理伪指令和C宏时,这是很有用的.可能的编译输出可重新定向到一个文件,然后用编辑程序来分析:$cc -c -E foo.c foo.out#此命令使include文件和程序被预先处理并重定向到文件foo.out.#以后可以用编辑程序或者分页命令分析这个文件,并确定最终的C语言代码看起来如何.\{n,m\}:匹配其前单个字符重现的次数区间,n-m次,匹配其前的字符至少n次,至多m次n与m的值必须介于0至RE_DUP_MAX(含)之间$ getconf RE_DUP_MAX 获得值\{n\}:重现n次\(n,\}:至少重现n次\{1,\} ;至少一次 \{0.3\} :至多三次# grep a\{1,3\}b test.txtab aab aaab# grep a.\{1,3\}b test.txtaab acb amnb amnbnnhb练习1:以abcABCdefDEF匹配^ABC 不匹配 def 匹配def$ 不匹配[[:upper:]]\{3\} 匹配,居中456ABC匹配[[:upper:]]\{3\}$ 匹配,结尾DEF匹配^[[:alpha:]]\{3\} 匹配,起始abc匹配.*:任意长度的任意字符# a.*b a开头b结束中间任意贪婪模式:默认情况下正则表达式工作在贪婪模式,尽可能长匹配?:匹配其前面的字符一次或0次部分符合也可以a?bb ,ab ,aab,acb,adb,ammb,annnbnnhbnb|:匹配于|符号前或后的正则表达式+:匹配前面正则表达式的一个或多个实例():匹配括号中内容[.与.]:排序,给予成组的项目排列顺序的操作,如假定[.cd.]存在,则[ab[.cd.]ef]匹配a,b,e,f,以及成对出现的cd[=与=]:等价字符集,让不同字符集在匹配时视为相同字符集如French的locale下,可能有[=e=]这样的等价字符集,则[Fi[=e=]ld]就等同于所有小写英文字母元音,以及字母è、é等\或者\b:锚定词首,其后面的任意字符必须作为单词首部出现\或者\b:锚定词尾,其前面的任意字符必须作为单词尾部出现# grep \root\ test.txt后向引用:匹配于正则表达式匹配的先前的部分①. 将子表达式包围在 \( 和 \) 里,单个模式里最多可包含9个子表达式,且可为嵌套结构②.在同一个模式之后使用 \digit, 数字digit介于1至9个数字。指的是匹配于第n个先前方括号内子表达式匹配成功的字符\(\) :后向引用\1:引用第一个左括号以及与之对应的右括号所包括的所有内容# grep \(l..e\).*\1 test3.txt 匹配一个或多个l..e# grep \([0-9]).*\1$ /etc/passwd任意数字 相同数字结尾\(ab\)\(cd\)[def]*\2\1 abcdcdab、 abcdeeecdab、 abceddeefffcdab、....\(why\).*\1 :表示一行里重现两个why\([“ ’].*\1:表示匹配以单引号或双引号括起来的字,例如bar或者fooe\(ch\)o.*\1表示,当遇到echo时,把ch保存在内存中,并编号为1,之后,可以有0个

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档