mysql-如何从模式中删除特定字符串?

mysql-如何从模式中删除特定字符串?,mysql,string,replace,Mysql,String,Replace,例如,我有一个包含如下字符串的表行: <p><img src="/assets/img/myfolder/abcdefghijkl0001_thumb.jpg"><br><br>some people can also type _thumb. if they want to <div style="background-image:url('/assets/img/myfolder/zzzzzz0002_thumb.png')">&l

例如,我有一个包含如下字符串的表行:

<p><img src="/assets/img/myfolder/abcdefghijkl0001_thumb.jpg"><br><br>some people can also type _thumb. if they want to <div style="background-image:url('/assets/img/myfolder/zzzzzz0002_thumb.png')"></div></p>
我怎样才能去掉拇指呢。和部分中的子字符串?我只知道一点关于replace命令的知识,但我似乎无法让它只移除_拇指。仅这些元素中的子字符串。

SET@var:='有些人也可以键入_thumb。如果他们想

”; SET@exoticstr:=CHAR0; 您可以使用任何字符/子字符串作为@exoticstr值-您必须只保证它在列值中不存在。但我怀疑字符串类型的列值中可能存在CHAR0。

注意:这是一个有用的答案,但不是正确的答案。。!! 我认为,REGEXP_REPLACE不提供替换组的可能性。因此,最好使用一些高级语言;PHP很好,可以更新你的数据库

<?php
$pat1=<<<EOF
/(<img\s+src\s*=\s*[\"\'].*)(_thumb)(\.(png|jpg)[\"\']>)/imU
EOF;
$pat2=<<<EOF
/(<div\s+style\s*=\s*[\'\"].*)(_thumb)(\.(png|jpg).*[\'\"]>)/imU
EOF;
$text=<<<EOF
<p><img src="/assets/img/myfolder/abcdefghijkl0001_thumb.jpg"><br><br>some people can also type _thumb. if they want to <div style="background-image:url('/assets/img/myfolder/zzzzzz0002_thumb.png')"></div></p>
EOF;
$text=preg_replace($pat1,'$1$3',$text);
$text=preg_replace($pat2,'$1$3',$text);
echo $text;
?>
输出:

<p><img src="/assets/img/myfolder/abcdefghijkl0001.jpg"><br><br>some people can also type _thumb. if they want to <div style="background-image:url('/assets/img/myfolder/zzzzzz0002.png')"></div></p>
Reqular表达式在线:

既然可以使用MySQL 8.0 REGEXP_REPLACE,那么第二个参数中的$1和$3是什么意思?我已经读了一个小时的preg_replace文档了,我不明白如何从模式中删除某些内容。。我只看到它会给它增加一些东西,括号决定了分组;regx=此处$1此处$2此处$3;所以我只选了第一组和最后一组;因此,文本_thumb是第二组;将被忽略。请阅读有关“正则表达式组捕获”的更多信息;此外,在回答中的Reqular Expression Online链接中,您可以看到右侧的组。
<p><img src="/assets/img/myfolder/abcdefghijkl0001.jpg"><br><br>some people can also type _thumb. if they want to <div style="background-image:url('/assets/img/myfolder/zzzzzz0002.png')"></div></p>