Php正则表达式如何添加反斜杠\&引用;?
我想在所有非字母数字字符之前添加一个反斜杠“\”,如“你好吗\:\)”,因此我使用了以下方法:Php正则表达式如何添加反斜杠\&引用;?,php,regex,.htaccess,backslash,Php,Regex,.htaccess,Backslash,我想在所有非字母数字字符之前添加一个反斜杠“\”,如“你好吗\:\)”,因此我使用了以下方法: $code = preg_replace('/([^A-Za-z0-9])/i', '\$1', $code); 但它不起作用。相反,它只是呼应“\$1”。我做错了什么 我也试过了 $code = preg_replace('/([^A-Za-z0-9])/i', '\\$1', $code); 但是不行。你需要四个反斜杠: $code = preg_replace('/([^A-Za-z0-9
$code = preg_replace('/([^A-Za-z0-9])/i', '\$1', $code);
但它不起作用。相反,它只是呼应“\$1”。我做错了什么
我也试过了
$code = preg_replace('/([^A-Za-z0-9])/i', '\\$1', $code);
但是不行。你需要四个反斜杠:
$code = preg_replace('/([^A-Za-z0-9])/i', '\\\\$1', $code);
原因是反斜杠在PHP字符串上下文中自动转义(甚至是单引号)。要让PCRE看到一个,至少需要两个。但是为了不被误解以掩盖替换占位符,您仍然需要将其加倍。(顺便说一句,三个反斜杠也会起作用。)你需要四个反斜杠:
$code = preg_replace('/([^A-Za-z0-9])/i', '\\\\$1', $code);
原因是反斜杠在PHP字符串上下文中自动转义(甚至是单引号)。要让PCRE看到一个,至少需要两个。但是为了不被误解以掩盖替换占位符,您仍然需要将其加倍。(顺便说一句,三个反斜杠也会意外地起作用。)示例:
<?php
$str = "Is your name O'reilly?";
// Outputs: Is your name O\'reilly?
echo addslashes($str);
?>
示例:
<?php
$str = "Is your name O'reilly?";
// Outputs: Is your name O\'reilly?
echo addslashes($str);
?>
你错过了一个\(因为它需要转义,它应该是\$1
)我也尝试了\\但没有用。你错过了一个\(因为它需要转义,它应该是\$1
)我尝试了\\但没有用。echo preg\u replace(“~([^A-Za-z0-9]),“\\$1”,$mystring)代码>如果不想在空格前添加\的话。echo preg\u replace(“~([^A-Za-z0-9]),“\\$1”,“$mystring”)代码>如果不想在空格前添加\的话。