请教几个正则表达式

无·法 社区初级成员 T1 2009-09-21 11:40:36
比如我要查一个手机号码中的最后四位是不是aabb或者abab或者aaab的形式,该如何写表达式?
如果谁厉害点帮我1234、3456等这样递增的该如何写?
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
killerzyb 2009-10-21
  • 打赏
  • 举报
回复
sddsdfsfdsfdsdfs
2009-09-22
  • 打赏
  • 举报
回复


/^\d{7}(\d)\1(\d)\2$/ //aabb
/^\d{7}(\d)(\d)\1\2$/ //abab
/^\d{7}(\d)\1\1\d$/ //aaab


后2个不会写.
-过客- 2009-09-22
  • 打赏
  • 举报
回复

//aabb,允许aaaa
(\d)\1(\d)\2$
//abab,允许aaaa
(\d)(\d)\1\2$
//aaab,允许aaaa
(\d)\1\1\d$
//同时允许
(?:(\d)\1(\d)\2|(\d)(\d)\3\4|(\d)\5\5\d)$


//以上如果不允许aaaa,第二个(\d)改为((?!\1)\d)
//如aabb,不允许aaaa
(\d)\1((?!\1)\d)\2$


//递增如果只是4位正则勉强可以做到,基本上类似于穷举了,意义不大,此为不允许7890
(0(?=1)|1(?=2)|2(?=3)|3(?=4|$)|4(?=5|$)|5(?=6|$)|6(?=7|$)|7(?=8|$)|8(?=9|$)|9(?=0|$)){4}$
//如果允许7890
(0(?=1|$)|1(?=2)|2(?=3)|3(?=4|$)|4(?=5|$)|5(?=6|$)|6(?=7|$)|7(?=8|$)|8(?=9|$)|9(?=0|$)){4}$
silentwins 2009-09-22
  • 打赏
  • 举报
回复
用正则式判断数字递增还不如用程序罗列所有情况出来判断,正则式各字符之间是没有数值关系的,不要为正则式而正则式。
silentwins 2009-09-22
  • 打赏
  • 举报
回复
aabb (\d)\1(\d)\2$
abab (\d\d)\1$
aaab (\d)\1\1\d$
无·法 社区初级成员 T1 2009-09-22
  • 打赏
  • 举报
回复
谢谢各位高手的鼎力相助,对于递增的我还是就直接罗列了,不过3楼的确实强大,学习了!

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧