【发布时间】:2012-01-18 15:13:12
【问题描述】:
短版: 我需要会改变的mysql代码
[href="http://a-random-domain.com"]超链接[/href]
进入
- 不会弄乱域部分,并且
- 不会意外转换字段文本中可能出现的任何不相关的 "] 实例。
- 域每次都是唯一的/不同的 遇到过。
长版: 我正在迁移旧数据库以用于新应用程序。旧数据库有一个文本字段,其中包含以下内容:
这是一个包含 [href="http://somedomain.com"]hyperlink[/href] 和更多数据以及可能的其他超链接的数据字段。
我需要将其更新为标准 html,例如
这是一个包含 hyperlink 和更多数据以及可能还有其他超链接的数据字段。
使用 REPLACE 修复 [href= 和 [/href] 非常简单
update table set field = replace(field, '[href=', '<a href=');
但是我在 a href 标记的 "] 右括号上被绊倒了。并且在数据库中还有其他 "] 实例不应该被修改,所以我不能只替换 "]
mysql 是否有某种正则表达式“前瞻”或其他方式来完成此操作?
非常感谢!
【问题讨论】:
-
可能会查看stackoverflow.com/questions/986826/… 吗?但是,如果这是一次性交易,您可能会考虑在客户端进行;例如用于 SELECT * / UPDATE 每一行的简短 Perl 脚本。也许效率低下,但可用于像这样的简单修复。
-
谢谢!不确定这对我有用,因为像“] 这样的字符只需要在用作超链接的一部分时变成 ">。如果没有提供 mysql 解决方案,我肯定会使用类似 Perl 的脚本从 mysql 中处理这个问题。再次感谢
-
在您的“短版”中,我认为您的意思是
[href="http://a-random-domain.com"]hyperlink[/href]而不仅仅是[href="http://a-random-domain.com"]? -
ruakh 你是对的 - 编辑修复。谢谢