替换MySql中的格式化字符串

时间:2011-03-04 20:50:23

标签: mysql regex string phpbb

我正在尝试将MySql数据库中旧BB标记标记的所有实例替换为稍微不同的新标记。

旧格式是这个......

[youtube:********]{Video ID}[/youtube:********]

我想用这个代替...

[youtube:********]http://www.youtube.com/watch?v={Video ID}[/youtube:********]

*是随机的字母数字字符串。因此,REPLACE(feild, '[youtube:********]', '[youtube:********]http://www.youtube.com?watch?v=简直不会这样做。

我使用REPLACE()INSTR()进行的所有笨拙尝试都导致了令人讨厌的事情,例如[b]Bold Text[/b]http://www.youtube.com/watch?v=

有没有办法在MySql中进行这种模式替换?可能使用正则表达式?

谢谢。

1 个答案:

答案 0 :(得分:1)

这是你试过的吗?

UPDATE table SET Field = REPLACE(Field,']{',']http://www.youtube.com/watch?v={')

如果没有任何其他的'] {'

出现,这将取决于

编辑:您可能还想尝试:

UPDATE table SET Field = LEFT(Field,#) + 'http://www.youtube.com/watch?v='+ 
RIGHT(Field,(Char_Length(Field)-#);

只需使用MYSQl文档检查语法。 Char_LNEGTH()可能需要LENGTH() - 我确定你明白了