博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP与正则表达式 2 :一些修饰符与preg_match_all
阅读量:4326 次
发布时间:2019-06-06

本文共 1438 字,大约阅读时间需要 4 分钟。

看到了这个函数preg_match_all( )  ,它的作用是进行全局正则表达式匹配

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

<?
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
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度

转载于:https://www.cnblogs.com/webu/archive/2013/02/21/2920012.html

你可能感兴趣的文章
[JSOI2010] 连通数
查看>>
二分和三分
查看>>
支付宝新漏洞引发恐慌,那如何关闭小额免密支付呢
查看>>
Mac OS 快捷键
查看>>
java 下载文件
查看>>
The King’s Problem 强连通
查看>>
Lambda 表达式
查看>>
Ural1297 最长回文子串(后缀数组+RMQ)
查看>>
十九、CSS如何引入字体
查看>>
DS博客作业07--查找
查看>>
c# Invalidate() Update() Refresh()的区别
查看>>
work of 1/5/2016
查看>>
自己做了个微信小程序
查看>>
CMD获取当前目录的绝对路径
查看>>
HTML5新规范和CSS3新特性
查看>>
使用php后台给自己做一个页面路由,配合ajax实现局部刷新。
查看>>
类与对象(二)
查看>>
NSString 的常用方法
查看>>
mysql的engine不同,导致事物回滚失败的问题
查看>>
JAVAWeb使用POI做导出Excel
查看>>