php正则表达式把西文双引号替换成中文双引号
发布网友
发布时间:2022-04-06 06:51
我来回答
共3个回答
热心网友
时间:2022-04-06 08:20
我来解释下2楼的代码, preg_replace的第一个参数的正则,第二个参数是替换结果,第三个参数是要替换的字符串。
第一个参数'/"([^"]*)"/'的意思是匹配成对出现的双引号内容,()代表引用,[^"]*代表引号内的内容,也就是一个不包含"的任意长度的字符串。
第二个参数'“${1}”'中的${1}使用了第一个参数中的第一个引用,也就是双引号内的内容,所以第二个参数的意思就是将第一个参数的正则匹配到的英文双引号内的内容放到了中文双引号中。
解释完毕。
热心网友
时间:2022-04-06 09:38
$a = '我"你';
echo $a,"<br/>";
$a = str_replace("\"","\“",$a);
echo $a;
你要知道,西文双引号不分左右的,但是中文双引号分左右的。所以这里会有问题。你就要对西文双引号进行匹配,这个就不在本题讨论范围了
热心网友
时间:2022-04-06 11:13
$str = 'A:"How are you" B:"I am fine", "';
echo $str."\n";
$str = preg_replace('/"([^"]*)"/', '“${1}”', $str);
echo $str."\n";