首页 新闻 会员 周边

求一个正则表达式匹配..

0
悬赏园豆:10 [已解决问题] 解决于 2017-05-01 22:38

"135 3366 441] 1354] 7541"

例如这么一个字符

希望有一个表达式,能匹配到 

135
3366
7541

而不匹配到
441]
1354]

求大牛..

 

http://bbs.csdn.net/topics/390825513

mild的主页 mild | 初学一级 | 园豆:111
提问于:2014-07-02 16:06
< >
分享
最佳答案
0

(^|(?<=\s))(\d+)(?!\])\b

收获园豆:10
Yu | 专家六级 |园豆:12980 | 2014-07-02 17:04

我试试

mild | 园豆:111 (初学一级) | 2014-07-02 17:13

这个貌似还行

mild | 园豆:111 (初学一级) | 2014-07-02 18:02

@mild:行就行 不行就不行  代码要严谨 稳健 

Yu | 园豆:12980 (专家六级) | 2014-07-03 15:59
其他回答(3)
0

javascript: var p = /(\d+)[^\]\d]|(\d+)$/g;

ThreeTree | 园豆:1490 (小虾三级) | 2014-07-02 16:39

这样还是把 441] 和 1354] 匹配到了

支持(0) 反对(0) mild | 园豆:111 (初学一级) | 2014-07-02 16:40

@mild: 很奇怪,我再浏览器中试过了,好使的,你再试一下这个:var p = /(\d+)(?!\])(?!\d)/g;

支持(0) 反对(0) ThreeTree | 园豆:1490 (小虾三级) | 2014-07-02 16:45

@mild: 看到了怎么回事了,var p = /(\d+)[^\]\d]|(\d+)$/g; 你少写了最后面的$符号

支持(0) 反对(0) ThreeTree | 园豆:1490 (小虾三级) | 2014-07-02 16:46

@ThreeTree: 嗯,我刚测试过了 var p = /(\d+)(?!\])(?!\d)/g;

 

这个是有效的,连用2个零宽断言.. 

支持(0) 反对(0) mild | 园豆:111 (初学一级) | 2014-07-02 16:48

@mild: 

 

111]222 333 444]

 

测一下这个

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2014-07-02 17:06
0

[\d]+?[\s]{1,}

Comelyren | 园豆:177 (初学一级) | 2014-07-02 17:47

后面的3587没出来

支持(0) 反对(0) mild | 园豆:111 (初学一级) | 2014-07-02 17:58

@mild: Matchs()也不行么?还有就是你3587后面没空格肯定匹配不到呀!看有没有这个需求匹配最后一个。看答案可以自己稍微想想嘛。哈哈。

支持(0) 反对(0) Comelyren | 园豆:177 (初学一级) | 2014-07-02 18:16

@番茄炒西红柿: 嗯 好的 感谢

支持(0) 反对(0) mild | 园豆:111 (初学一级) | 2014-07-02 18:17
0

自己老实点写吧代码区做吧 或者写正则吧

检测连续的数字集合,语句干扰或者非数字直接分组。貌似很好实现吧  

数字检测 可以通过ASCII去判断

以上个人意见

落幕残情 | 园豆:34 (初学一级) | 2014-07-02 18:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册