我有以下字符串:
'this is a "text field" need "to replace"'
我想在每个非双引号词和双引号之前添加加号(+)字符,如下所示:
'+this +is +"text field" +need +"to replace"'
有没有办法执行此类操作?我尝试使用str_replace和regex,但无法弄清楚如何做到这一点。
先谢谢。
答案 0 :(得分:4)
您可以使用此基于交替的正则表达式:
$re = '/"[^"]*"|\S+/m';
$str = 'this is a "text field" need "to replace"';
$result = preg_replace($re, '+$0', $str);
//=> +this +is +a +"text field" +need +"to replace"
"[^"]*"|\S+
是匹配双引号文本或任何非空格词的正则表达式,替换为+$0
,每个匹配前缀为+
。
答案 1 :(得分:0)