gpt4 book ai didi

php - 匹配字符串中空格后的位数

转载 作者:可可西里 更新时间:2023-11-01 07:43:58 26 4
gpt4 key购买 nike

我正在尝试匹配字符串中的位数。这是我的 MySql 查询的一部分

    SELECT digits, concat(digits, ' Digits ') as selects, count(*) as count
FROM (SELECT (case WHEN `no` REGEXP '[[:<:]][0-9]{1}[[:>:]]' then '1'
WHEN `no` REGEXP '[[:<:]][0-9]{2}[[:>:]]' then '2'
WHEN `no` REGEXP '[[:<:]][0-9]{3}[[:>:]]' then '3'
WHEN `no` REGEXP '[[:<:]][0-9]{4}[[:>:]]' then '4'
end) AS digits
FROM `no_ads` AS a
.......
.......

问题出在这样的字符串中4U 24U 2 a当它应该算作 1 ( [[:<:]][0-9]{1}[[:>:]] ) 时,我的查询将把它算作 2 位数字。我如何在第一个空格后开始计数?

最佳答案

您的查询将匹配第一个仅由数字组成的单词中的位数,您可以在此处查看简化的测试用例。因此,如果您假设您只有其中一个这样的数字,那么您的查询实际上是有效的,并且您可以在测试集中看到您的示例。

SELECT t, (case 
WHEN `t` REGEXP '[[:<:]][0-9]{1}[[:>:]]' then '1'
WHEN `t` REGEXP '[[:<:]][0-9]{2}[[:>:]]' then '2'
WHEN `t` REGEXP '[[:<:]][0-9]{3}[[:>:]]' then '3'
WHEN `t` REGEXP '[[:<:]][0-9]{4}[[:>:]]' then '4'
end) AS digits
FROM test;

+---------------+--------+
| t | digits |
+---------------+--------+
| 23 | 2 |
| 4U 2 | 1 |
| 4U 2 a | 1 |
| 4U 23 a | 2 |
| Ad 34 34 34 d | 2 |
| 4U 2 23 a | 1 |
+---------------+--------+

无论如何,如果你想匹配一行中第一个空格之后发生的事情,你可以使用 ^([[:alnum:]]+[[:blank:]]) 其中 ^ 是字符串开头的符号。

See here the full list of Syntax of Regular Expressions

关于php - 匹配字符串中空格后的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35622462/

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