php正则表达式把西文双引号替换成中文双引号

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:53:14
php正则表达式

把英文状态下输入的双引号替换成中文状态下输入的双引号
preg_replace

怎么编写正则表达式。
在线等!
我也就是知道需要匹配,有个左右。我现在需要解决的就是这个左右。单个好匹配
要一对,我就不知道怎么弄
需要讨论的就是怎么匹配左右
2楼的可以用,强!!!!
preg_replace('/"([^"]*)"/', '“${1}”', $str);
2楼哥哥麻烦说明下哇。正则我不怎么懂。

各位哥哥太感谢了。感觉懂了点了。还有需要请教的。
分就给3楼吧

我来解释下2楼的代码, preg_replace的第一个参数的正则,第二个参数是替换结果,第三个参数是要替换的字符串。

第一个参数'/"([^"]*)"/'的意思是匹配成对出现的双引号内容,()代表引用,[^"]*代表引号内的内容,也就是一个不包含"的任意长度的字符串。

第二个参数'“${1}”'中的${1}使用了第一个参数中的第一个引用,也就是双引号内的内容,所以第二个参数的意思就是将第一个参数的正则匹配到的英文双引号内的内容放到了中文双引号中。

解释完毕。

$a = '我"你';
echo $a,"<br/>";
$a = str_replace("\"","\“",$a);
echo $a;

你要知道,西文双引号不分左右的,但是中文双引号分左右的。所以这里会有问题。你就要对西文双引号进行匹配,这个就不在本题讨论范围了

$str = 'A:"How are you" B:"I am fine", "';
echo $str."\n";
$str = preg_replace('/"([^"]*)"/', '“${1}”', $str);
echo $str."\n";