用 Regex 替换多个主题内容?

嘿,

在我导入的许多内容中,我发现旧域名的链接出现在我导入的主题中,如下所示:

https://domain.com/threads/xxxx

其中 xxxx 是一个四位数的帖子编号。

我想一次性从所有主题中删除此字符串,有什么最好的方法可以批量处理 3,000 多个主题吗?

您好,

这应该会有帮助:

1 个赞

嘿,谢谢!

rake posts:delete_word['^http:\/\/domain.com\/threads\/.*.\/$','regex']

没有返回任何结果,知道我哪里出错了?

尝试:

rake posts:delete_word['https?://domain\\.com/threads/\\\\d{4}','regex']

太棒了!完美运行,我一直在阅读您提供的帖子,并尝试构建一个正则表达式来删除 RGB BBCode。

RegEx Builder 声明我的正则表达式有效:

但是,在运行它时,它要么更新 0 个帖子,要么我收到一个错误,提示它不是一个有效的正则表达式。

BBCode 在主题中的显示方式如下:

[COLOR=rgb(95, 66, 222)]

我也尝试过这个:

rake posts:delete_word[‘[\WCOLOR=rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})(, ){0,1}(0(\.\d+)?|1(\.0+)?)\)]’,‘regex’]

您难道不想让那些链接生效吗?也许只是更改主机名?

您可以在此讨论的另一个主题中找到我关于如何在 Rails 中执行此操作的示例,并使用 http://rubular.com/ 来调整您的正则表达式。

1 个赞