替换在列中使用 Regex 找到的子字符串
我在 MySQL 8 中有一个表。在 varchar 列中,我想用另一个子字符串替换长子字符串。我可以使用此正则表达式找到这些行:
SELECT notetext FROM mytable WHERE notetext REGEXP '[a-zA-Z0-9_.:\/-]{25,}';
此 Regex 搜索具有 length>25 的子字符串的所有行。但是,我无法弄清楚如何将匹配的子字符串替换为替换子字符串。我想做这样的事情:
update mytable set notetext = replace(notetext,** regex match ***, 'replacement text') WHERE notetext REGEXP '[a-zA-Z0-9_.:\/-]{25,}';
假设 notetext 是 “this is the tracking number 8868848848838883399999499494949949949949”。当打印在某个位置时,它会超出打印区域。目的是通过添加一个空格来断开此跟踪号,以便在打印时将文本换行,以便整个文本保持在固定长度的打印区域中,并且如果长单词中没有中断,则打印系统不会换行。
“这是8868848848838883399 999499494949949949949的跟踪号码”