x = iconv(''gb2312'', ''utf-8'', ''/[你您]/u'');
$str = preg_replace($regex, ''you'', $str);
echo $str; //打印2次you
//x模式修饰符,可以忽略空白和加注释
$str = ''test Test'';
preg_match(''/test #只匹配小写的test/x'', $str, $arr);
print_r($arr);
//排除环视(?<!...) (?!...)、忽略优先 *? +? ?? 的复合使用
$str = ''test <B>test1<B> test2</B>'';
preg_match(''/<B>(?:.(?<!<B>))*<\/B>/i'', $str, $arr);
//或者 preg_match(''/<B>(?:(?!<B>).)*<\/B>/i'', $str, $arr);
print_r($arr)
//当时这样写应付不了 $str = ''test <B>test1<B> test2</B> test3</B>'';
//改写一下正则既可 preg_match_all(''/<B>(?:(?!<\/?B>).)*<\/B>/i'', $str, $arr);
//根据上面来完成一个最简单的UBB替换
$str = ''test [b]test1[b] test2[/b] test3[/b]test'';
$str = preg_replace(''/\[B\]((?:(?!\[\/?B\]).)*)\[\/B\]/i'', ''<b>\1</b>'', $str);
$str = preg_replace(''/\[B\]((?:(?!\[\/?B\]).)*)\[\/B\]/i'', ''<b>\1</b>'', $str);
print_r($str)
//如果已经确认回朔并不会有匹配结果,可以使用固化分组来放弃备用状态提高效率
$str = ''Subject'';
preg_match(''/(\w+):/'', $str, $arr);
//用以下方法代替
//在第一组匹配规则匹配到文本末尾t时匹配结束,启用第二组匹配规则:并不会找到结果,所以这个时候回朔查找,但是\w不会包含:,所以可以直接放弃,
preg_match(''/(?>\w+):/'', $str, $arr);