首页 新闻 会员 周边 捐助

哪位大神来帮我解释下数据库中正则的一个小疑问!

0
悬赏园豆:10 [已解决问题] 解决于 2017-12-06 15:56

为什么第一次查询的时候[:alnum:]可以理解为一个一个随机数(或字母),第二次就不行了?除非写成第三种那种形式'  [[:alnum:]]' ?

梦再笑的主页 梦再笑 | 初学一级 | 园豆:55
提问于:2017-12-06 00:00
< >
分享
最佳答案
0

正常写法就应该是最后一种,你第一种那个地方是个问号啊。

收获园豆:10
Daniel Cai | 专家六级 |园豆:10424 | 2017-12-06 10:36

我知道最后一个是对的!我想问的是第二个错在了那里?  ‘?’ 表示重复出现0或1次元字符,而[:alnum:]表示的就是一个随机的字母或者数字啊,所以[:alnum:]?1最后对了我能理解。但是既然[:alnum:]表示一个随机的元字符为什么[:alnum:]01就有问题了?如果你说[:alnum:]01是随机的不一定是0,那么第二次[:alnum:]?1也是随机的不一定是0啊!为什么第一次的就可以?

梦再笑 | 园豆:55 (初学一级) | 2017-12-06 12:03

@梦再笑: 你第一个缺一对中括号,你匹配的是:alnum:这些字符中的0个或1个再加一个1

所以你第一个能匹配到第二个匹配不到。

第三个才是我要匹配一个数字字母再加一个01

Daniel Cai | 园豆:10424 (专家六级) | 2017-12-06 14:53

@Daniel Cai: 懂了!谢谢指教!

梦再笑 | 园豆:55 (初学一级) | 2017-12-06 15:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册