首页技术php正则 php正则匹配数字

php正则 php正则匹配数字

编程之家2023-11-01115次浏览

无论是php正则还是php正则匹配数字,它们都是当前热门话题。如果你对它们感到好奇,那么请跟随小编的脚步,一起来揭开它们的秘密吧!

php正则 php正则匹配数字

php中的正则表达式有哪些

正则表达式中"/"是表达式开始和结束的标记,“\”可以将后面出现的字符标记为特殊字符,接下来在PHP中具体演示一下:

1,正则表达式是以/作为开始和结束的标记,表达式语法在两个/中间包裹,如下图所示

2,接着演示一下\,像下面的表达式匹配的是n

3,但是如果在n前面加上\匹配的就是换行符号了,如下图所示

4,可以用\进行转义的字符主要有以下几种

php正则表达式

优先匹配哪个?

php正则 php正则匹配数字

通常是优先匹配左边的(从左往右执行嘛,然后又因为有贪婪性,比如[0-9]*[0-9]*去匹配123,左边的[0-9]*会匹配到12,右边的[0-9]*会匹配到3),正则表达式左边的部分会匹配到能是能使匹配成功的最长的匹配,具体原因如下:

贪婪、回溯和正则导向引正则擎的急切性:正则的{}和*合+有具贪婪性会向后匹配到他们可以匹配的尽可能多的字符串。但是如果重复性的匹配会引起整个(后面的)正则表达式匹配失败时,会引起回溯,放弃最后一次重复匹配(相当于剩余的字符串从左边增加了一位),用表达式后面的部分匹配剩余的字符串。在前面的正则匹配成功后立即用剩余的表达式部分继续匹配后面的内容,如果匹配成功会立刻返回匹配成功,不会继续回溯(php的正则表达式引擎室正则导向的)

里面的(.*)是怎么找得?

*有具贪婪性会向后匹配到.可以匹配的最大长度的字符串,最初匹配到-2011-2012,然后因为回溯不断减少匹配的值,直到匹配-201。

过程是怎样的,

php正则 php正则匹配数字

执行顺序:

1.[0-9]{2,4}会先匹配到2010,

2.然后(.*),因为*得贪婪性会匹配到后面所有.能匹配的字符-2011-2012。

3.此时表达式执行到[0-9]{1,2},因为[0-9]{1,2}此时没有任何可以匹配的内容,所以引起回溯(.*)匹配到前一次匹配结果的倒数第2位重新匹配到-2011-201,[0-9]{1,2}与最后一位匹配成功得到字符串最后面的2,因为正则引擎的急切性,匹配成功后会立即用正则表达式剩余的部分继续向后匹配。

4.此时表达式执行到\1,字符串后面没有剩下任何东西所以\1(\1指(.*)匹配的结果-2011-201)匹配失败,然后引起回溯。[0-9]{1,2}向前移一位,结果[0-9]{1,2}没有字符可以进行匹配操作,匹配失败。引起回溯,(.*)匹配到前一次匹配结果的倒数第2位重新匹配到-2011-20,再用[0-9]{1,2}匹配得到12,后面依然没有字符与\1匹配,引起回溯,此次[0-9]{1,2}匹配到1,\1(此时值为-2011-20)与2匹配再次失败。于是重复上面的回溯【此处省去n百字,总之是重复上面的回溯】,直到(.*)匹配到-201,\1匹配到了-2012中的-201,因为正则导向的正则引擎是急切的,不再进行回溯,继续后面的匹配。

5.最后,[0-9]{1,2}与字串剩余部(最后一个字符)2匹配成功返回,因为正则导向的正则引擎是急切的,所以立刻返回匹配结果,不再进行回溯。

睡觉前看到的没想到写出来这么难,不过也没白写,就当总结了。

php正则表达式反斜杠

echo"\\\/";//三个'\',输出‘\\/’

echo"\\\\/";//四个‘\’,输出还是‘\\/’

原因还是比较简单的,三个 \时,前两个斜线第一个作为转义字符转义了第二个斜线,输出结果还是一个斜线,第三个斜线并没有转义效果,所以当作字符“\”处理,所以输出了两个斜线。

四个 \时,第一个和第三个斜线分别转义了第二个和第四个斜线,所以也输出了两个斜线。

而echo"/\/";中,\并没有对任何符号进行转义,所以当作普通字符串处理了

这里是我的实验代码:

和实验结果:

php正则匹配数字

式子:/^[a-zA-Z0-9]+$/u

释义:

"/":表示正则表达式的定义,固定写法。

"^":表示开头。

"[]":表示字符组。匹配所包含的任意一个字符。如,“[ab]”匹配“plain”中的“a”。

"a-z":表示匹配小写字母a-z的字母范围。

"A-Z":表示匹配大写字母A-Z的字母范围。

"0-9":表示匹配0-9的数字范围。

"+":表示匹配次数大于等于1。

"$":匹配输入行尾。如果设置了RegExp对象Multiline属性,$也匹配“\n”或“\r”之前的位置。

"u":最后的u是模式修饰符,严格的说可能叫预定义常量。表示使用unicode进行匹配。

扩展资料:

正则表达式的特点是:

1.灵活性、逻辑性和功能性非常强;

2.可以迅速地用极简单的方式达到字符串的复杂控制。

3.对于刚接触的人来说,比较晦涩难懂。

由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

参考资料来源:

百度百科-正则表达式

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

asp后台管理系统?网站后台管理系统是什么免费的asp空间(哪里有asp+access的免费网页存放空间 )