gpt4 book ai didi

Mysql,REGEXP 中的空格

转载 作者:行者123 更新时间:2023-11-30 01:16:11 25 4
gpt4 key购买 nike

我有一个问题。

我的这个函数完成了我想要的一切,除了一件事,它还删除了字符串中的空格,这是我不想要的。

我一直在尝试这里的所有不同的技巧和想法,但它不起作用。文档说我使用它是正确的,也许我误解了。有人可以帮我吗?

CREATE DEFINER=`user`@`%` FUNCTION `fn_RemoveNumbers`(str varchar(8000)) RETURNS varchar(767) CHARSET latin1
BEGIN
DECLARE i, len SMALLINT DEFAULT 1;
DECLARE ret varchar(767) DEFAULT '';
DECLARE c CHAR(1);
SET len = CHAR_LENGTH( str );
REPEAT
BEGIN
SET c = MID( str, i, 1 );
IF (c REGEXP '[[:alpha:]]') OR (c REGEXP '[[:space:]]') THEN
SET ret=CONCAT(ret,c);
END IF;
SET i = i + 1;
END;
UNTIL i > len END REPEAT;
RETURN ret;
END

在我看来, (c REGEXP '[[:space:]]') 应该将字符附加到最终字符串,但事实并非如此。

我也尝试过“”、“[ ]”等,但没有成功。

我使用的是 mysql 版本 5.6。我使用了这个文档:http://dev.mysql.com/doc/refman/5.6/en/regexp.html

最佳答案

我无法在这里测试 UDF,但尝试将其设为 1 正则表达式,如下所示:

IF c REGEXP '[[:alpha:]]|[[:space:]]' THEN

您是否可能正在处理非标准空间?喜欢非换行空格吗?在这种情况下,也许这可以捕获所有空白:

IF c REGEXP '[[:alpha:]]|[[:blank:]]' THEN

或者,如果您只是想删除数字,如下所示:

IF c NOT REGEXP '[[:digit:]]' THEN

关于Mysql,REGEXP 中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035084/

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