我正在寻找一种方法来替换和更新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|$))
您可以使用[[:space:]]*
匹配数字和%
之间的0或更多空格字符:
'[[:space:]]*[0-9]+[[:space:]]*%[[:space:]]*'
它匹配
[[:space:]]*
- 0个或更多的空白字符[0-9]+
- 1位或更多位数[[:space:]]*
- 0个或更多的空白字符%
- 0个或更多的空白字符请注意,如果您的MySQL版本低于8.x,则可能不支持%
或[[:space:]]*
和\d
。