如何在mysql触发器中用正则表达式查找和替换中间的内容

如何在mysql触发器中用正则表达式查找和替换中间的内容,mysql,regex,triggers,chat,Mysql,Regex,Triggers,Chat,我已经用触发器链接了4个不同论坛数据库中的4个聊天,现在我想在这里输入“/msg message”命令来触发匿名公告 下面是一个示例消息,它们位于表列中 (AGN)[color=#EEFD01]this is a message example[/color] (ND)[color=#1EB101]this is a message example[/color] 开头圆括号中的字母代表信息来自哪个论坛 到目前为止,这是我的触发器: CREATE TRIGGER agn_sign_chat B

我已经用触发器链接了4个不同论坛数据库中的4个聊天,现在我想在这里输入“/msg message”命令来触发匿名公告

下面是一个示例消息,它们位于表列中

(AGN)[color=#EEFD01]this is a message example[/color]
(ND)[color=#1EB101]this is a message example[/color]
开头圆括号中的字母代表信息来自哪个论坛

到目前为止,这是我的触发器:

CREATE TRIGGER agn_sign_chat BEFORE INSERT ON dark_taigachat FOR EACH ROW BEGIN
IF (INSTR(NEW.message,"/msg") > 0) THEN
SET NEW.message = CONCAT("(!) ", NEW.message);
SET NEW.message = REPLACE(NEW.message,"/msg ","");
SET NEW.username = "ANNOUNCEMENT";
SET NEW.user_id = 996;
//HERE I WANT TO REPLACE COLOR TAG IN MESSAGE TO #fd0101 (RED)
ELSEIF (INSTR(NEW.message,"(") != 1) THEN
SET NEW.message = CONCAT("(AGN) ", NEW.message);
END IF ;
END ; 
ElSEIF只是在处理论坛标志,它的下方是“如果我正在更改消息细节,使其看起来像一条一般公告消息”

它可以工作,但会将字体的颜色保留为我的个人字体颜色,因此我想将其替换为红色,如#fd0101。如果我使用这个/msg命令新建了一个人的字体颜色,我可以使用RePLACE()将他的颜色替换为红色,但颜色值会有所不同,所以我猜我需要使用REGEX,我在mysql数据库中使用过几次,但从未在触发器中使用过。有可能这样做吗?也许像这样的东西会选择颜色#([0-9]|[A-F]),但是如何找到并替换它呢

感谢您抽出时间

尝试
/(color=#\w*)/g
regex并用适当的颜色替换它,例如
color=#fd0101

好用来检查


如果有帮助,请将其标记为答案:)

对不起,MySQL中没有regexp替换功能


您需要用一些客户端语言(PHP、Java等)来实现这一点。

这可能是我需要的正则表达式,但我仍然不知道如何或是否可以在触发器中用正则表达式“查找并替换”。你能给我举一个例子,说明我将在触发器上添加的行吗?我对它不太了解,但可能会对你有所帮助