从字符串中删除所有反斜杠 - php - 正则表达式 [关闭]

Posted

技术标签:

【中文标题】从字符串中删除所有反斜杠 - php - 正则表达式 [关闭]【英文标题】:Remove all backslashes from a string - php - regex [closed] 【发布时间】:2012-12-03 22:47:59 【问题描述】:

我的字符串是

$str = '<img src="\"images/hai.jpg\""  /> Text <img src="\"images/hai.jpg\""  />';

我想从字符串中删除所有“\”。

【问题讨论】:

使用stripslashes($str) 简单的str_replace怎么样? str_replace('\"', '', $str) 就完成了。 这个问题没有建设性。 OP 没有研究。 【参考方案1】:

我认为您不是在寻找正则表达式,而是在寻找 stripslashes($str) 方法。

编辑:从 cmets,我了解到您只会用任何内容替换 \",您应该在这里使用简单的 str_replace,正如 @Gumbo 所说:

$str = ...;
$newStr = str_replace('\"', '', $str);

echo $newStr;

你可以为此使用正则表达式,但 pReg 库并不快,如果你能找到一个 str_* 或数组变体,我总是建议使用它而不是 preg_*

【讨论】:

他真的想删除\"而不仅仅是\ 他只想删除\",而不是所有\‍ @Michael 谢谢你,我已经编辑了问题 @WouterJ :但我想替换所有 \" 。 $str 是动态的,它可能包含许多 \"。 @FrancisMV123 我认为这正是我的代码的作用?【参考方案2】:

使用stripslashes($str) 不会总是从字符串中删除所有\s。如果存在\\ 存在的实例,它将变为一个斜线,而不是0。要摆脱它们,最好的办法可能是使用str_replace

正如 OP 所说,他希望删除 /",这需要使用 str_replace 来完成

【讨论】:

【参考方案3】:

这看起来像是一种经过多个转义序列的数据字符串。您可能需要查找反斜杠和重复引号的根本原因。在 php 中,魔术引号会导致这种事情。如果您可以阅读本文,它将解释这些问题。

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_6630-Magic-Quotes-a-bad-idea-from-day-one.html

HTH,~雷

【讨论】:

这即将成为仅链接的答案。您能否从链接的文章中提供一些额外的背景信息?此外,虽然双重转义和/或魔术引号确实会导致一般问题,但从 OP 的实际问题来看,这里似乎并非如此。

以上是关于从字符串中删除所有反斜杠 - php - 正则表达式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式中反斜杠()的麻烦和陷阱 (转)

正则表达式,字符串中需要两个反斜杠“\d”

正则表达式 反斜杠的匹配 2018-11-30

在 presto 中使用正则表达式仅在最后一个斜杠前面有一个字符时才删除它

正则表达式 Python - 反斜杠 [重复]

re模块 正则表达式