正则表达式为mysql正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式为mysql正则表达式相关的知识,希望对你有一定的参考价值。

我正在寻找一种方法来替换和更新mysql中以字符串开头或结尾的字符串值。

我想要如下值:

'15 % flour'
' 15 % beef'
'15% pork'
' 15 % rice'
'eggplant 15 %'
'banana 15 % '
'turkey 15%'
'chicken 15% '

在所有这些例子中,我想结束只有成分。例如:面粉或牛肉

我发现如果在行的开头,这将删除百分比。 REGEXP_REPLACE(ingredient_name,'^([0-9] | 100)+(%)+','')但是如果数字和百分比符号之间有空格则不行。

这是我最好的尝试,但我发现它与Mysql regexp_replace不兼容。

d+((' '|s|)\%(' '|s|$))

test link

答案

您可以使用[[:space:]]*匹配数字和%之间的0或更多空格字符:

'[[:space:]]*[0-9]+[[:space:]]*%[[:space:]]*'

regex demo

它匹配

  • [[:space:]]* - 0个或更多的空白字符
  • [0-9]+ - 1位或更多位数
  • [[:space:]]* - 0个或更多的空白字符
  • qazxsw poi - 一张qazxsw poi图表
  • % - 0个或更多的空白字符

请注意,如果您的MySQL版本低于8.x,则可能不支持%[[:space:]]*d

以上是关于正则表达式为mysql正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

MySQL正则表达式

mysql 正则表达式 查询匹配 某个词

正则表达式为mysql正则表达式

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

mysql 正则表达式求解答