我想用''n
替换'n
,用''a
替换'a
,依此类推…
这是我的正则表达式:
图案:
([''])
应替换为:
$1$1
因此,如果输入字符串是'n
,它将被替换为'n
。(我在http://www.regexe.com/成功了(
然后我有了这个PHP代码:
preg_replace('/([''])/', '$1$1', "'n a");
并认为它会输出,但我得到了这个错误:
Warning: preg_replace(): Compilation failed: missing terminating ] for character class at offset 5
所以我逃离了[
。
现在我的代码是
preg_replace('/('[''])/','$1$1',"'n a");
但是。。。。这并不能像我想要的那样工作,因为现在它并没有用''n
取代'n
。
我做错了什么?
您不需要使用preg_replace
,您可以使用str_replace
,因为您不匹配模式。您需要将主题字符串放在单引号中,否则'n
将被视为换行符的转义序列。
str_replace('''', '''''', ''n a');
请参阅PHP中单引号和双引号字符串之间的区别是什么?
取另一个分隔符并添加一个反斜杠:
<?php
echo preg_replace('~(['''])~', '$1$1', ''n a');
// output: ''n a
?>