PHP、正则表达式 - 如何使用 preg_replace 转义\n?

标签 php regex escaping

我想用 \\n 替换 \n,用 \\a 替换 \a 和等等……

所以这是我的正则表达式:

图案:

([\\])

应替换为:

$1$1

因此,如果输入字符串是\n,它将被替换为\n。 (我已经在 http://www.regexe.com/ 测试过它并且有效)

然后我有了这段 PHP 代码:

preg_replace('/([\\])/', '$1$1', "\n a");

并认为它会输出\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');

参见 What is the difference between single-quoted and double-quoted strings in PHP?

关于PHP、正则表达式 - 如何使用 preg_replace 转义\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515871/

相关文章:

java - 如何拆分字符串,但还要保留分隔符?

python - 如何检测字符串中的转义序列

bash - 带有空格的 Mac OS shell 脚本 cd 文件夹不起作用

python - 在 Python 中,如何转义将用作 SQL 语句的字符串中的单引号?

php - HTTPS 给出 404 未找到错误

php - SQL触发器和技术债务

php - Codeigniter session 问题

php - httppost mysql 为空

python - Python 中的正则表达式未捕获所有信息

javascript - 正则表达式匹配句子javascript中的第一个和最后一个单词?