首页 新闻 赞助 找找看

赐教一正则表达式

0
悬赏园豆:5 [待解决问题]

1.可以为任意字符(asdf123!@#$%,这种情况可以通过)
2.不能包含连续相同的字符(aaa1234567,这种情况不能通过,因为aaa连续相同)
3,不能只包含字母(asdfghkqw,这种情况不能通过)
4,不能只包含数字(134234234,这种情况不能通过)

 

第二个条件不会写,我的水平就只能写出满足1,3,4的(^([a-zA-Z]+(?=[0-9])|[0-9]+(?=[a-zA-Z]))[a-zA-Z0-9]+$)。请赐教,谢谢。

alexnest的主页 alexnest | 初学一级 | 园豆:0
提问于:2010-12-02 15:06
< >
分享
所有回答(4)
0

匹配连续字符时这样 /(.)\1+/  想办法加进去,手头没有测试工具.

沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-02 16:14
测试正则表达式的小工具: http://www.cnblogs.com/downmoon/archive/2010/05/21/1741270.html#
支持(0) 反对(0) 邀月 | 园豆:25475 (高人七级) | 2010-12-02 16:20
0

^(?!.*?(.)/1.*?).*?[a-zA-Z]+?.*?[0-9]+?.*?$  试试这个看看

DotNet1010 | 园豆:260 (菜鸟二级) | 2010-12-02 17:13
不行喔,大哥。abc234234234这个应该可以通过,但用你给的正则,这个通不过喔。
支持(0) 反对(0) alexnest | 园豆:0 (初学一级) | 2010-12-02 18:16
0

楼主你要的东西,我还真写不出来,但是我可以给你一个解决方案。你要的是不可以输入连续相同的东西。但你可以从反面思考,匹配连续的东西。然后取反。那么就是不可以连续重复了。

至于匹配连续相同的东西的正则表达式是(.)\1。如果你觉得我的这个方案解决了你的问题的话,就给我点分吧。最近我有问题要提问,分有点紧。

BLoodMaster | 园豆:135 (初学一级) | 2010-12-03 17:27
当然如果你想匹配更高的话,那么就是(.)\1+。这样就解决了你的问题了。
支持(0) 反对(0) BLoodMaster | 园豆:135 (初学一级) | 2010-12-03 17:29
0

[/s/S].* 匹配所有

程序新青年 | 园豆:841 (小虾三级) | 2010-12-17 10:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册