请教PHP正则里中括号和圆括号的区别 我见有的是(.*?) 有的又是([\s\S]*?])[\S\s]为什么这里要放在[]里.能不能解释一下啊.大家.看了教程这里老是看不明白 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、[\S\s]是匹配\S或\s字符,\S匹配任何非空白字符,\s匹配任何空白字符(空格、制表符等)2、中括号的意思是匹配括号中的任一个字符(注意,只匹配一个字符)3、圆括号是标记一个正则表达式的开始和结束。 为什么不是(\s\S*?]) 而是([\s\S]*?]) 呢.不太明白. 中括号是匹配括号中的一个字符,[\s\S]也就是匹配\s和\S的其中一个,而不是两个。\s\S是匹配\s和\S两个字符。 http://blog.sevenight.com/index.php?m=blog&a=show&id=57 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。举个例吧,这个我也不懂,经常匹配不到..,哈哈,看下效果好点.$data = 'x456n y45m';preg_match_all("/[xyz](.+?)[nm]/i", $data, $match);print_r($match);输出结果Array( [0] => Array ( [0] => x456n [1] => y45m ) [1] => Array ( [0] => 456 [1] => 45 ))$match[0]为全部模式匹配的数组,也就是整个正则匹配,(包含[]表达式)$match[1]为第一个括号中的子模式所匹配的字符串组成的数组,就是只有第一个()里的正则匹配出来的,(从上面例子即可看出匹配后的区别了)一般都是替换,查找的目标了要是多个子表达式()的话,就可能会有$match[2],$match[3]..可能说得有些乱,这些东西用习惯就好. 要写一个通用的SQL防注入模块~~~~~希望能给点思路 正则怎么写呢 ajax 刷新错误 PHP延时问题,请教专家。 为什么设置php的session_set_cookie_params生存时间无效? FFMPEG 在windows2003下不生效 二级连动菜单--请各位帮忙注释一下这个谢谢 怎样即时显示 什么是高级PHP工程师 最近在找个网站管理系统,各位能否给个建议100分侯 急!我调用DZ论坛的附件帖子并分页显示但图片显示不对应怎么解决? php视频教材解压时要密码,怎么办???
为什么不是(\s\S*?]) 而是([\s\S]*?]) 呢.不太明白.
[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
举个例吧,这个我也不懂,经常匹配不到..,哈哈,看下效果好点.
$data = 'x456n y45m';
preg_match_all("/[xyz](.+?)[nm]/i", $data, $match);
print_r($match);
输出结果Array
(
[0] => Array
(
[0] => x456n
[1] => y45m
) [1] => Array
(
[0] => 456
[1] => 45
))
$match[0]为全部模式匹配的数组,也就是整个正则匹配,(包含[]表达式)
$match[1]为第一个括号中的子模式所匹配的字符串组成的数组,
就是只有第一个()里的正则匹配出来的,(从上面例子即可看出匹配后的区别了)
一般都是替换,查找的目标了
要是多个子表达式()的话,就可能会有$match[2],$match[3]..可能说得有些乱,这些东西用习惯就好.