我正在尝试在引号内获取字符串。我正在使用正则表达式,但我遇到了转义引号的问题。
例如,我有这个:
$var = "SELECT * FROM TABLE WHERE USERNAME='Carasuman'";
preg_match_all('~([\'"])(.*?)\1~s', $var, $result);
$new = preg_replace('~([\'"])(.*?)\1~s',"<#################>",$var);
代码完美运行。我在 $result[1] 中获得了 $new 中的替换值和引用值
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>";
$result[1] = "Carasuman";
我的问题是当我在引号内添加一个转义引号时:
$var = "SELECT * FROM TABLE WHERE USERNAME='Carasuman\'s'";
我懂了:
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>'s";
$result[1] = "Carasuman\" //must be "Carasuman\'s";
如何避免此错误并像第一个示例一样获得 $new 和 $result[1] ?:
$new = "SELECT * FROM TABLE WHERE USERNAME=<#################>";
$result[1] = "Carasuman\'s";
谢谢!