PHP正则表达式完整教程

第一篇文章将与您分享PHP正则表达式安全教程的基础。本文将继续扩展有关PHP正则表达式的知识。

PHP正则表达式的各种运算符的操作优先级

从左到右执行相同的优先级,不同优先级的操作越高,然后越低:

操作说明

转义字符

()、(=)、(=)}、括号和括号

*,+,{,},{,},{,n,}限定符

^,美元,anymetacharacter位置和顺序

|或操作

PHP正则表达式的所有符号解释。

特征描述

下一个字符被标记为一个特殊字符,或一个文字字符,或一个向后引用,或八进制转义字符。

例如,'n'matches字符。'n'matches换行。序列与和(()。

^匹配输入字符串的开始位置。如果RegExp对象的Multiline属性设置,该^符合职位after'n'or'r。

$匹配匹配输入字符串的结束位置。如果RegExp对象的Multiline属性设置,也符合职位before'n'or'r美元。

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

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

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

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

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

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

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

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

(模式)匹配模式并获得了这场比赛。得到的匹配可以从生成的比赛得到的,利用设置在VBscript submatches,用0美元在Jscript。9美元的财产。匹配的括号字符,使用(或)。

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

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



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



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

{某}字符集。匹配任何人物的控制。例如,{ }匹配在ABC重点平原。

{ ^ XYZ }负字符集。匹配任意字符,不包括在内。例如,{ }比赛the'p ^ ABC在平原。

{ }字符a-z范围。匹配指定范围内的任何字符。例如,{ }匹配任何小写字母A-Z字符范围在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 } {。

不匹配的标签。它相当于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字符,是由416位数字表示。例如,u00a9火柴版权符号()。



以上是对PHP正则表达式的完整教程的介绍。希望你能喜欢。