gpt4 book ai didi

php - 当反斜杠多次转义时替换它们

转载 作者:行者123 更新时间:2023-11-29 07:48:14 25 4
gpt4 key购买 nike

我在正在开发的应用程序中犯了一个错误,结果发现有些文本有多次双引号转义,如下所示

We will begin by constructing the front and sides of the bar. We will first create frames for both the front and sides using 2\\\\\\\\" x 4\\\\\\\\"s and will then secure particle board panels over the frames. The bar in this project is 42\\\\\\\\" tall by 60\\\\\\\\" wide by 40\\\\\\\\" deep. You will be drilling several screws in this project. To make this process easier- first drill pilot holes for the screws in your frame using your Dremel Rotary Tool and a 150 1/8\\\\\\\\" Drill Bit.

我正在寻找一种在数据库中进行更新的方法,可以快速删除所有这些斜杠,到目前为止我的想法是使用正则表达式,例如

for each($records as $record){
$record->description = preg_replace(*/some patter here/*, $record->description);
$record->save();
}

但是我很难找到正确的模式,所以也许有人可以帮忙解决这个问题,或者如果有更简单或更好的方法来更新这些记录,我真的很感谢任何帮助!

最佳答案

您几乎不应该将反斜杠转义的内容存储在数据库中。要清理这些,您可能需要类似的东西:

preg_replace( "/\\\\{2,}/", "", $record->description );

这将用空字符串替换 2 个或更多反斜杠的序列。如果有必要,您可以使其更具体 - 这样它只会匹配那些反斜杠后跟双引号字符的序列:

preg_replace( '/\\\\{2,}"/', '"', $record->description );

如果您想通过 PHP 来完成此操作。您的数据库引擎可能有一个内置的正则表达式替换功能,该功能允许您仅使用查询来执行更新,并且可能会获得更高的性能(如果这很重要)。模式可能是相同的。

我刚刚注意到你的 MySQL 标签。显然MySQL没有内置的正则表达式替换功能。请参阅How to do a regular expression replace in MySQL?

我的建议是完全摆脱反斜杠转义,然后在输出时根据需要转义,除非有充分的理由存储转义的内容。您当然可以更改替换字符串,以用单个反斜杠或任何您想要的内容替换这些序列。

关于php - 当反斜杠多次转义时替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27157280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com