设为首页 收藏本站
查看: 1807|回复: 0

[经验分享] PHP与正则表达式 2 :一些修饰符与preg_match_all

[复制链接]

尚未签到

发表于 2017-4-13 10:45:10 | 显示全部楼层 |阅读模式
  看到了这个函数preg_match_all( )  ,它的作用是进行全局正则表达式匹配

于是在手册上看到了这个例子:


DSC0000.gif <?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
    
"<b>example: </b><div align=left>this is a test</div>",
    
$out, PREG_PATTERN_ORDER);

/*
<
一个或多个未包含‘〉’的字符    
>

零个或多个字符

〈/

一个或多个未包含‘〉’的字符
    
>

*/

print_r ($out);

?> 


  上面那个正则表达式的意义已经写在程序里了。

结果是:

Array
(
    [
0=&gt; Array
        (
            [
0=&gt; <b>example: </b>
            [
1=&gt; <div align="left">this is a test</div>
        )

    [
1=&gt; Array
        (
            [
0=&gt; example: 
            [
1=&gt; this is a test
        )

)
 


  这个可以理解。但是我忽然注意到了程序里面的那个U

于是就在想这个U是干什么的?当我把U去掉的结果是:



Array
(
    [
0=&gt; Array
        (
            [
0=&gt; <b>example: </b><div align="left">this is a test</div>
        )

    [
1=&gt; Array
        (
            [
0=&gt; example: <div align="left">this is a test
        )

)
 


很有意思,于是我以为这个U的作用是不理会前面的语句。

但是有些乱,于是Google了一下,不得不说Google这个没有搜到,最后是在百度上查到的。

其实我还是喜欢Google。。。^_^

查看结果如下:
修饰符
意 义

/regexp/i
不区分大小写的匹配

/regexp/s
使句点(
.)匹配任何字符,包括换行符( )

/regexp/x
从模式中删除空白符和注释

/regexp/m
使
^匹配换行符 ( )之后的内容,美元符号($)匹配换行符 ( )之前的内容

/regexp/e
如果替换字符串是PHP代码,使用eval()执行该代码来得到实际的替换字符串。

PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符,如表4
-13所示:

表4
-13:其他的PHP标志

修饰符
意 义

/regexp/U
颠倒子模式的贪婪性;
*+尽可能少地匹配而不是尽可能多。

/regexp/u
把模式字符串当作UTF
-8编码对待

/regexp/X
如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误

/regexp/A
把锚定位在字符串的开头就像模式中有
^一样

/regexp/D
使
$字符仅匹配一行的末尾

/regexp/S
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度


原来还有修饰符,呵呵,

学到了,记下来吧。。嗯。。嘿嘿。。。Good Good Study,Day  Day  Up!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364342-1-1.html 上篇帖子: php学习笔记(三十六)smarty中使用自定函数和代码块(smarty2和smarty3的不同) 下篇帖子: php中动态生成不同字体颜色的png格式验证图片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表