gpt4 book ai didi

mysql - 想更改为每个单词结尾而不是字符串结尾(匹配)- MariaDB/MySQL + REGEXP_REPLACE

转载 作者:行者123 更新时间:2023-11-29 07:18:03 26 4
gpt4 key购买 nike

想要更改为单词的每个结尾而不是字符串的结尾(匹配)?

我现在有这个查询:

SELECT REGEXP_REPLACE(name,"(a|o|e|y|cy|dzy|rzy|owie|i|u|ów|owi|em)$",'') FROM `zp_poster`

示例查询:

SELECT REGEXP_REPLACE("Józefowi Piłsudski","(a|o|e|y|cy|dzy|rzy|owie|i|u|ów|owi|em)$",'')

Expected result:

Józef Piłsudsk

Real result:

Józefowi Piłsudsk

最佳答案

您可以使用单词边界字符类。

作为explained in the documentation ,从版本 8.0.4 开始,MySQL 正则表达式依赖 ICU 符号(Unicode 的国际组件),其中单词边界表示为 \b .在早期版本中,使用 Spencer 实现,边界表示为 [[:<:]] (在一句话之前)和[[:>:]] (一句话之后)。

SELECT REGEXP_REPLACE(
name,
'(a|o|e|y|cy|dzy|rzy|owie|i|u|ów|owi|em)\\b',
''
)
FROM `zp_poster`

Demo on DB Fiddle :

WITH t AS (
SELECT 'Józefowi Piłsudski' name
UNION ALL SELECT 'Piłsudski Józefowi'
)
SELECT
name,
REGEXP_REPLACE(
name,
'(a|o|e|y|cy|dzy|rzy|owie|i|u|ów|owi|em)\\b',
''
) replaced
FROM t;

| name | replaced |
| ------------------ | -------------- |
| Józefowi Piłsudski | Józef Piłsudsk |
| Piłsudski Józefowi | Piłsudsk Józef |

关于mysql - 想更改为每个单词结尾而不是字符串结尾(匹配)- MariaDB/MySQL + REGEXP_REPLACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com