gpt4 book ai didi

mysql - 正则表达式用文件名中的下划线替换 %2B

转载 作者:行者123 更新时间:2023-11-29 00:39:43 25 4
gpt4 key购买 nike

我正在尝试将文件名中出现的所有 %2B 替换为 _

例如:

之前:/wp-content/uploads/2012/10/Moreton%2Bwindow.jpg

之后:/wp-content/uploads/2012/10/Moreton_window.jpg

/wp-content/uploads/2012/10/.jpg之间可能出现多次%2B

这是我目前所拥有的:

(?<=\/wp-content\/uploads\/2012\/10\/.)(%2B)(?=.\.jpg)

替换为:_

但它不起作用。我将在 MySQL 中进行此替换。

最佳答案

我不相信 MySQL 支持基于正则表达式的字符串替换——而且我在文档中没有看到类似的东西——但是你可以这样写一个表达式:

CASE WHEN path_plus_filename REGEXP '^/wp-content/uploads/2012/10/.*[.]jpg$'
THEN REPLACE(path_plus_filename, '%2B', '_')
ELSE path_plus_filename
END

返回 path_plus_filename,但如果(且仅当)整个匹配 ^/时,将每个 %2B 替换为 _ wp-content/uploads/2012/10/.*[.]jpg$.

或者,如果您想要一个UPDATE 语句而不是一个查询,您可以这样写:

UPDATE table_that_contains_path_plus_filename_column
SET path_plus_filename = REPLACE(path_plus_filename, '%2B', '_')
WHERE path_plus_filename REGEXP '^/wp-content/uploads/2012/10/.*[.]jpg$'
;

编辑添加: 顺便说一句,这既不在这里也不在那里,但是 - 你的正则表达式的问题是它需要 %2B 前面有 /wp-content/uploads/2012/10/ 加上exactly 一个字符,然后是exactly 两个字符加上jpg。为了在允许的字符数上获得一些灵 active ,您需要使用 .* (“零个或多个字符”)或 .+ (“一个或多个字符") 或 .{5,20}(“5 到 20 个字符之间”)或诸如此类的东西。

关于mysql - 正则表达式用文件名中的下划线替换 %2B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787322/

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