mysql在字符串的开头和结尾查找/替换字符,但不在字符串的中间

时间:2011-12-12 16:30:31

标签: mysql regex replace

简短版本: 我需要改变的mysql代码

  

[HREF = “http://a-random-domain.com”]超级链接[/ HREF]

进入

  

< a href =“http://a-random-domain.com”>超链接< / a>

  • 没有弄乱域名部分,
  • 不会意外转换可能出现在字段文本中的任何不相关的“]实例。
  • 域名每次都是唯一/不同的 遇到。

长版: 我正在迁移旧数据库以用于新应用程序。旧数据库有一个文本字段,其中包含以下内容:

  

这是一个带有[href =“http://somedomain.com”]超链接[/ href]的数据字段以及更多数据和可能的其他超链接。

我需要将其更新为标准html,例如

  

这是一个带有< a href =“http://somedomain.com”>超链接< / a>的数据字段以及更多数据和可能的其他超链接。

使用REPLACE

修复[href =和[/ href]非常简单
update table set field = replace(field, '[href=', '<a href=');

但是我在一个href标签的右侧括号中被绊倒了。在数据库中还有其他不应修改的“]实例,所以我不能只替换”]

mysql是否有某种正则表达式“前瞻”或其他方式来实现这一目标?

非常感谢!

1 个答案:

答案 0 :(得分:2)

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

MySQL支持仅用于“评估”目的的正则表达式函数。 因此,您无法在替换或操作数据时使用它。使用高级脚本语言会更好。