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

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

SELECT digits, concat(digits, ' Digits ') as selects, count(*) as count

FROM (SELECT (case WHEN `no` REGEXP '[[:<:>:]]' then '1'

WHEN `no` REGEXP '[[:<:>:]]' then '2'

WHEN `no` REGEXP '[[:<:>:]]' then '3'

WHEN `no` REGEXP '[[:<:>:]]' then '4'

end) AS digits

FROM `no_ads` AS a

.......

.......

问题是在这个4U 2或4U 2这样的字符串中,当我的查询计为1时,我的查询会将其计为2位数([[:: ]]).我如何在第一个空间后开始计算?

解决方法:

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

SELECT t, (case

WHEN `t` REGEXP '[[:<:>:]]' then '1'

WHEN `t` REGEXP '[[:<:>:]]' then '2'

WHEN `t` REGEXP '[[:<:>:]]' then '3'

WHEN `t` REGEXP '[[:<:>:]]' 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:]])其中^是开头的符号串.

标签:php,mysql,regex

来源: https://codeday.me/bug/20190711/1431807.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值