1.perl风格的正式可以以多种非字母数学的字符做为起/末位格式符.在这儿, #就是代表起始/结束的标志符.
2. i是同时匹配大小写,U是反转了匹配数量的值使其不是默认的重复  参数项在手册PCRE模式修正符一节中可以查到.

解决方案 »

  1.   


    感谢您的回复,我完全看懂了您的解释我补充两个小问题
    1.perl风格的正式可以以多种非字母数学的字符做为起/末位格式符.在这儿, #就是代表起始/结束的标志符. 我以前写的时候都是用/来做正则的开始和结尾,现在这里用#,我自己测试的记过是
    $str  =  preg_replace("# <a.+>(.*) </a>#iU", "\\1", $str); 
    如果用/做开始结尾的分隔符那么这句话就要写成如下才能达到同样效果
    $str  =  preg_replace("/<a.+>(.*) <\/a>/iU", "\\1", $str); 
    区别只有<\/a>按您的意思,我可以不可以理解为,&*(%$%#都可以做正则的开头结尾标志
    2,这个U是反转匹配数量,这个意思是说,他是更改正则内部的匹配数量的标准?这是不是非贪婪的意思了?两个概念一样吗?非常感谢