看到了这个函数preg_match_all( ) ,它的作用是进行全局正则表达式匹配
于是在手册上看到了这个例子:
上面那个正则表达式的意义已经写在程序里了。
结果是:
这个可以理解。但是我忽然注意到了程序里面的那个
U
于是就在想这个U是干什么的?当我把U去掉的结果是:
很有意思,于是我以为这个U的作用是不理会前面的语句。
但是有些乱,于是Google了一下,不得不说Google这个没有搜到,最后是在百度上查到的。
其实我还是喜欢Google。。。^_^
查看结果如下:
原来还有修饰符,呵呵,
学到了,记下来吧。。嗯。。嘿嘿。。。Good Good Study,Day Day Up!!!
于是在手册上看到了这个例子:
<?
php
preg_match_all ( " |<[^>]+>(.*)</[^>]+>|U " ,
" <b>example: </b><div align=left>this is a test</div> " ,
$out , PREG_PATTERN_ORDER);
/*
<
一个或多个未包含‘〉’的字符
>
零个或多个字符
〈/
一个或多个未包含‘〉’的字符
>
*/
print_r ( $out );
?>
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
)
)
(
[ 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去掉的结果是:
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
)
)
(
[ 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
)
)
但是有些乱,于是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
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度
意 义
/ 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!!!