当前位置:编程学习 > php >>

PHP函数preg_match_all问题

问题1:

"/http.*\.(mp3|wma|wmv|avi)/i"
/这个符号是什么意思?结尾的/i表示的什么?百度查到意思是忽略大小写,但不明白具体用法.
是不是 /表达式/i 在/符号之间的所有内容忽略大小写?

问题2:

在手册中看到preg_match_all的例子,下面的正则表达式不明白是什么意思.
"|<[^>]+>(.*)</[^>]+>|U"
又[, int flags] 的默认排序是什么?对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组 这句话又是什么意思?

答案:/ 是正则表达式的定界符. 正则表达式应被包含在定界符中,如斜线(/)。任何不是字母、数字或反斜线(\)的字符都可以作为定界符. 如果作为定界符的字符必须被用在表达式本身中,则需要用反斜线转义;

结尾的 /i : / 是定界符 (有开头就要有结尾), i 表示忽略大小写. "是不是 /表达式/i 在/符号之间的所有内容忽略大小写?", 是.

"|<[^>]+>(.*)</[^>]+>|U"

开头和结尾的 | 是定界符 (这里用了跟上例不一样的定界符), 结尾的U代表Ungreedy, 本修正符使匹配数量的值不是默认的重复,变成在后面跟上“?”才重复;

[^>]+表示匹配一个以上的字符, 而且这个字符不是大于号;

$matches[0]表示目标字符串中匹配该模式 (整个正则表达式的) 的部分, 例如<div>ddd</div>;

$matches[1]表示目标字符串中匹配第一个括号的子模式 (第一个括号里面, 本例是 (.*) ) 的部分, 例如 ddd

正则表达
oh my god

上一个:PHP程序时间与电脑时间不一致
下一个:PHP中的.无法写入mysql吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,