很多站长朋友们都不太清楚php正则断言,今天小编就来给大家整理php正则断言,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php一个诡异正则不解, 2、 PHP正则表达式 反斜线定义断言的限定符:\A 、 \Z、 \G 、 \z表示什么意思? 3、 php正则问题 /\/ 和/^+$/的区别 php一个诡异正则不解,这个正则表达式是能切割所有utf-8字符(包括中文),如果去掉u还能切割所有英文字符,只要在同一行上.
这个正则表达式(?<!^)表示向后否定的零宽断言,表示向后搜索不是行开头(^)的字符,就是不是在一行的开头
(?!$)表示向前否定的零宽断言,表示向前搜索不是行结尾($)的字符,就是不是在一行的结尾
合起来就是在这一行非开头和非结尾的中间字符进行分割
我给你举个例子,是去掉u的分割一行英文字符的php程序
<?php
$str='my parent';
$regex='/(?<!^)(?!$)/';
$result=preg_split($regex,$str);
print_r($result);
?>
运行结果
Array
(
[0] => m
[1] => y
[2] =>
[3] => p
[4] => a
[5] => r
[6] => e
[7] => n
[8] => t
)
PHP正则表达式 反斜线定义断言的限定符:\A 、 \Z、 \G 、 \z表示什么意思?\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
php正则问题 /\/ 和/^+$/的区别这俩根本就不是什么固定形式。前者就是错误的,因为\是转义符,在正则中()是有特殊意义的,必须成对,如果转义了(,那后面的)就没有匹配的(了,所以报错。
^匹配字符串开始,$匹配字符串结束。+表示前面的字符或分组出现一次以上。
关于php正则断言的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。