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

问题描述 投票:1回答:1

我正在寻找一种方法来替换和更新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|\b)\%(' '|\s|$))

test link

mysql regex
1个回答
1
投票

您可以使用[[: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

© www.soinside.com 2019 - 2024. All rights reserved.