UNIX和Linuxshell正则表达式语法

正则表达式是由普通字符(如字符A到Z)和特殊字符(称为元字符)组成的文本模式。该模式描述在寻找正文时要匹配的一个或多个字符串。



下一个字符被标记为一个特殊字符,或文字字符,或向后引用、或一个八进制转义字符。例如,'n'matches字符。'n'matches换行。序列和匹配(匹配(。



^



匹配输入字符串的起始位置。



美元



匹配输入字符串的结束位置。



*



匹配前面的子表达式零或更多。例如,ZO *可以匹配Z和动物园。相当于{ 0 }。



+



匹配前面的子表达式一次或多次。例如,'zo +匹配Zo和动物园+相当于{ 1 }。



U3000 U3000



匹配前面的子表达式零次或一次。例如,做(ES)可以匹配做做或,它相当于{0,1}。



{ }



n是一个非负整数。匹配确定的n次。例如,‘{ 2 } '不匹配the'o鲍勃



{,}



n是一个非负整数。匹配至少n倍。例如,‘{ 2 } 'cannot匹配鲍勃in'o ',但可以在foooood匹配所有O,O { 1 }是等效to'o +'。‘{ 0 }是等效to'o *。



{,}



m和n是非负整数,n = m n次<<比赛至少符合M次最多。O 3 } { 将在fooooood比赛第一三O,O {0,1}是等效to'o。请注意,这里是逗号,两个数字之间没有空格。



U3000 U3000



当角色是由任何其他限制(*,+,{ },{ },{ N,N,M }),模式匹配是不贪,非贪婪模式匹配搜索字符串尽可能小,而默认的贪婪模式匹配搜索字符串尽可能。例如,字符串哦







匹配其他比n的任何单个字符,匹配任意字符including'n ',使用模式,像{ }。



(模式)



匹配模式,得到了这场比赛。得到的匹配可以从生成的比赛得到的,和submatches集使用VBscript。0hellip美元,9美元的属性是用Visual Basic脚本版。匹配的括号字符,使用(或)。



(::模式)



匹配模式但没有得到匹配的结果,那就是,它是一种非接触的比赛,不是存储供以后使用。在使用或字符(|)各部分相结合的模式是非常有用的。例如,'industr(:Y | IES)是一个简洁的表达than'industry |产业。



(=模式)



提出了prelook,匹配在匹配模式的任何字符串的开始查找字符串。这是一个非获取匹配,即匹配不需要用于将来使用。例如,'windows(= 95 | 98 | NT | 2000)可以匹配窗口在Windows 2000预检查不消费特征,也就是说,发生的一场比赛后,下一场比赛是最后一场比赛后立即开始,而不是从预先检查特征。



(!模式)!



负预查找匹配的任何负面先行开始任何搜索字符串匹配点的搜索字符串的一个地方。这是一个非获取匹配,即匹配不需要用于将来使用。例如,'windows(!95 | 98 | NT | 2000)可以匹配窗口Windows 3.1预检查不消费特征,也就是说,发生的一场比赛后,下一场比赛是最后一场比赛后立即开始,而不是从预先检查特征。



X | Y



赛X或Y为例,Z | food'can匹配Z或食物,(Z | F)设计比赛zood 或食物。



{某}



一个字符集匹配任意字符,包含。例如,{ }匹配在ABC重点平原。



{某某}



一系列负面特征。匹配任意字符,不包括在内。例如,{ }比赛the'p ^ ABC在平原。



{到}



Character range.Matches any character in the specified range.For example,'{a-z}'can match any lowercase alphabetical character in the range of'a' to'z'.



{ ^ A-Z }



负字符范围。匹配任意字符,不在规定的范围内。例如,{ ^ A-Z }匹配任何字符,不在范围A to'z。



B



一个词的边界是匹配的,即文字和空间之间的位置。例如,'erb'can比赛the'er永远



B



匹配非单词边界。'erb'can比赛the'er动词



CX



匹配指定的X.例如控制字符,匹配一个control-m厘米或回车。x的值必须是一个字母或a-z.otherwise,C是一个original'c'character。



D



匹配一个数字字符,它相当于{ 0-9 }。



D



匹配一个非数字字符,它相当于^ 0-9 } {。



F



匹配一个进纸。它相当于x0c和CL。



n



匹配一个换行符。它相当于x0a和CJ。



R



匹配一个回车符,它相当于x0d厘米。



S



匹配任何空白字符,包括空格、制表符、换页符等。它相当于fnrtv } { }。



S



匹配任何非空白字符,相当于^ fnrtv } {。



T



匹配一个制表符,它相当于x09和CI。



v



匹配一个垂直制表符,它相当于x0b和CK。



W



匹配任何字符,包括下划线。它相当于{ }a-za-z0-9_。



W



匹配任何非单词字符。它相当于{ }^ a-za-z0-9_。



Xn



匹配n,其中n是116进制转义码。十六位小数的值必须是一个确定的两个数。例如,'x41'matches 。'x041'is等效to'x041 。ASCII编码可以在正则表达式中使用..



号码



匹配数字,在这里数字是正整数。对所得到的匹配的引用。例如,(。)1匹配两个连续的相同字符。



n



标识一个八进制逃逸值或一个向后引用。如果至少n获得的子表达式在N,N是一个落后的参考。否则,如果n是八进制数(0-7),那么n是一个八进制转义码。



nm



标识一个八进制逃逸值或一个向后引用。如果至少有至少nm已获得前nm,纳米是一种落后的参考。如果至少N已获得在nm,N是一个落后的参考跟文本M.如果前面的条件不满意,如果N和M是八进制数(0-7),然后将八进制转义值nm nm。



NML



如果n是八进制数(0-3),和M和L是八进制数(0-7),八进制转义值和匹配。



联合国



匹配n,其中n是一个Unicode字符是四位的十进制数字来表示。例如,u00a9火柴版权符号()。