Preg_replace模式混淆与单引号

时间:2015-04-06 23:54:40

标签: php regex preg-replace-callback

我有以下模式可以正常工作,但我试图添加一个单引号的案例,但无论我做什么我都能得到单引号来处理模式,我&# 39;我试过逃避等等没有运气!?

$title = preg_replace_callback('/(\"|\()([a-z])/', function($m) {
     return strtoupper($m[0]);
}, $title);

我已经尝试了以下但它似乎没有效果。

'/(\"\'|\()([a-z])/'

1 个答案:

答案 0 :(得分:2)

将所有三个字符放在一个字符类中。此\"\'将查找双引号以及以下单引号。如果没有,那么它就不会做替换。

$title = '"foo(bar)"';
echo preg_replace_callback('/[\'"(]([a-z])/', function($m) {
     return strtoupper($m[0]);
}, $title);

<强>输出:

"Foo(Bar)"