【问题标题】:REGEX_REPLACE in mySQL everything inside character with its valuemySQL 中的 REGEX_REPLACE 字符内的所有内容及其值
【发布时间】:2020-10-27 16:20:20
【问题描述】:

我想使用 REGEX_REPLACE 替换 mysql 中的文本字段。

我的字符串如下所示:

Hi friends @[Friendly User <user@contoso.com>], what are you doing?

我想要的是,删除括号内的所有内容 [] 以及 &lt;&gt; 内的文本。

所以输出应该是这样的:

Hi friends @user@contoso.com, what are you doing?

我的 SQL 代码:

UPDATE `Chat`
SET `Text` = REGEXP_REPLACE(`Text`, '\<(.*?)\>', 'text inside <>');

到 dbfiddle 的链接:

https://dbfiddle.uk/?rdbms=mariadb_10.5&fiddle=f930852c6bf05fbb31125f42852093f9

【问题讨论】:

    标签: mysql regex string sql-update mariadb


    【解决方案1】:
    UPDATE `Chat`
    SET `Text` = REGEXP_REPLACE(`Text`, '\\[.*\<(.*?)\>.*\\]', '\\1');
    

    \\1 是转义的\1,用于引用第一个捕获组值。您可以使用它来引用替换中捕获的值。我也修改了你的正则表达式以匹配括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-23
      • 2017-06-03
      • 2015-04-12
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多