UNIX和LinuShell正则表达式语法介绍

上传人:人*** 文档编号:496577026 上传时间:2024-01-08 格式:DOCX 页数:5 大小:17.25KB
返回 下载 相关 举报
UNIX和LinuShell正则表达式语法介绍_第1页
第1页 / 共5页
UNIX和LinuShell正则表达式语法介绍_第2页
第2页 / 共5页
UNIX和LinuShell正则表达式语法介绍_第3页
第3页 / 共5页
UNIX和LinuShell正则表达式语法介绍_第4页
第4页 / 共5页
UNIX和LinuShell正则表达式语法介绍_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《UNIX和LinuShell正则表达式语法介绍》由会员分享,可在线阅读,更多相关《UNIX和LinuShell正则表达式语法介绍(5页珍藏版)》请在金锄头文库上搜索。

1、UNIX和LinuxShell正则表达式语法介绍一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如,n匹配字符n。n匹配一个换行符。序列匹配而(则匹配(。匹配输入字符串的开始位置。$匹配输入字符串的结束位置。*匹配前面的子表达式零次或多次。例如,zo*能匹配z以及zoo。*等价于0,。+匹配前面的子表达式一次或多次。例如,zo+能匹配zo以及zoo,但不能

2、匹配z。+等价于1,。?匹配前面的子表达式零次或一次。例如,do(es)?可以匹配do或does中的do。?等价于0,1。nn是一个非负整数。匹配确定的n次。例如,o2不能匹配Bob中的o,但是能匹配food中的两个o。n,n是一个非负整数。至少匹配n次。例如,o2,不能匹配Bob中的o,但能匹配foooood中的所有o。o1,等价于o+。o0,则等价于o*。n,mm和n均为非负整数,其中n=m最少匹配n次且最多匹配m次。o1,3将匹配fooooood中的前三个o。o0,1等价于o?。请注意在逗号和两个数之间不能有空格。当该字符紧跟在任何一个其他限制符(*,+,?,n,n,n,m)后面时,匹配

3、模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串oooo,o+?将匹配单个o,而o+将匹配所有o。匹配除n之外的任何单个字符。要匹配包括n在内的任何字符,请使用象.n的模式。(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在VisualBasicScriptingEdition中则使用$0$9属性。要匹配圆括号字符,请使用(或)。(?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存

4、储供以后使用。这在使用或字符(|)来组合一个模式的各个部分是很有用。例如,industr(?:y|ies)就是一个比industry|industries更简略的表达式。(?=pattern)正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,Windows(?=95|98|NT|2000)能匹配Windows2000中的Windows,但不能匹配Windows3.1中的Windows。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。(?!patt

5、ern)负向预查,在任何不匹配Negativelookaheadmatchesthesearchstringatanypointwhereastringnotmatchingpattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如Windows(?!95|98|NT|2000)能匹配Windows3.1中的Windows,但不能匹配Windows2000中的Windows。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。x|y则匹配zood或匹配x或y。例如,z|food能

6、匹配z或food。(z|f)oodfood。xyz字符集合。匹配所包含的任意一个字符。例如,abc可以匹配plain中的a。Fxyz负值字符集合。匹配未包含的任意字符。例如,fabc可以匹配plain中的p。a-z字符范围。匹配指定范围内的任意字符。例如,内的任意小写字母字符。a-z可以匹配a到z范围不在中的Aa-z负值字符范围。匹配任何不在指定范围内的任意字符。例如,a到z范围内的任意字符。Aa-z可以匹配任何b匹配一个单词边界,er,但不能匹配也就是指单词和空格间的位置。例如,verb中的er。B匹配非单词边界。erBerb可以匹配never能匹配verb中的er,但不能匹配never中的

7、ercx匹配由x指明的控制字符。为A-Z或a-z之一。否则,将例如,cM匹配一个Control-M或回车符。x的值必须c视为一个原义的c字符。d匹配一个数字字符。等价于0-9DA0-9匹配一个非数字字符。等价于f匹配一个换页符。等价于x0c和cL。n匹配一个换行符。等价于x0a和cJ。r匹配一个回车符。等价于x0d和cM。s匹配任何空白字符,包括空格、制表符、换页符等等。等价于fnrtvS匹配任何非空白字符。等价于Afnrtv。t匹配一个制表符。等价于x09和cI。v匹配一个垂直制表符。等价于x0b和cK。w匹配包括下划线的任何单词字符。等价于A-Za-z0-9_。W匹配任何非单词字符。等价于

8、AA-Za-z0-9_。例如,编码。.匹配两xn匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。x41匹配A。x041则等价于x04&1。正则表达式中可以使用ASCIInum匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,(.)1个连续的相同字符。n标识一个八进制转义值或一个后向引用。如果n之前至少n个获取的子表达式,则n为后向引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。nm标识一个八进制转义值或一个后向引用。如果nm之前至少有isprecededbyatleastnm个获取得子表达式,则nm为后向引用。如果nm之前至少有n个获取,则n为一个后跟文字m的后向引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则nm将匹配八进制转义值nm。nml如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,u00A9匹配版权符号(?)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号