Java中一些特殊格式的正则匹配,比如AABB。。。

yzksoso 2009-03-18 03:11:11
小弟接手一个模块,其中有一块是对电话号码的验证,想使用正则来做,但是对正则不是很熟悉,学习了一下,解决了一些还有一些没有解决,希望大家能帮忙,我顺便拓展一下思路,谢谢哈
比如,
1.在11位的数字中要求末三位数是“8”“9”组合但里面不要有4
2.AABB类型,ABAB类型等等
...全文
659 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzksoso 2009-03-18
  • 打赏
  • 举报
回复
谢谢各位
sjkof 2009-03-18
  • 打赏
  • 举报
回复

Pattern p = Pattern.compile("(\\d)\\1(\\d)\\2");
Matcher m = p.matcher("1122");
System.out.println(m.find());
sjkof 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yzksoso 的回复:]
嗯,第二个在JS中可以写成/(\d)\1/,这样就代表AA
/(\d)\1(\d)\2/  ,这个代表AABB
但是在Java的正则中,我试了半天没试出这个方法可以用,想来是语法可能不太一样
请求支援
[/Quote]

\注意要使用\\来表示
yzksoso 2009-03-18
  • 打赏
  • 举报
回复
嗯,第二个在JS中可以写成/(\d)\1/,这样就代表AA
/(\d)\1(\d)\2/ ,这个代表AABB
但是在Java的正则中,我试了半天没试出这个方法可以用,想来是语法可能不太一样
请求支援
goodmrning 2009-03-18
  • 打赏
  • 举报
回复
第一个:[0-3|5-9]{8}[8|9]{3}

楼上正解!
yzksoso 2009-03-18
  • 打赏
  • 举报
回复
抱歉,我没写明白
第二个的意思是AABB表示1122,4422。。这样的,ABBA就是1331,2442之类的
amethystic 2009-03-18
  • 打赏
  • 举报
回复
第一个:[0-3|5-9]{8}[8|9]{3}
第二个:没看明白,抱歉
Sodino 2009-03-18
  • 打赏
  • 举报
回复
正则表达,不懂.
帮顶

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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