mysql - 替换 MySql 中的格式化字符串

标签 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 中进行这种模式替换?可能用正则表达式吗?

谢谢。

最佳答案

这是你尝试过的吗?

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() - 我相信你明白了

关于mysql - 替换 MySql 中的格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5199113/

相关文章:

mysql - Insert into... select from.... query with where 条件

php - 转义特殊字符

python正则表达式单词重复时间

java - 仅打印给定字符串中的 3 个连续字符

在 C(不是 C++)中将字符串转换为数字,反之亦然

mysql - 如何根据 SQL 中出现的次数来过滤记录?

php - 如果存在多个字段,则仅使用一个字段 - mysql

regex - 为什么在使用正先行 (?=...) 时我对 regexp_matches 函数的响应为空

java - @QueryParam 正则表达式

java - 计算字符串中字符串的实例数