黑马程序员技术交流社区

标题: 关于正则表达式的问题 [打印本页]

作者: 杨翔    时间: 2013-7-9 20:47
标题: 关于正则表达式的问题
本帖最后由 杨翔 于 2013-7-10 14:32 编辑

关于匹配手机号的,我只知道  String str = "1[3458]\\d{4}"; 这样匹配的话,是第一个数一定要是1,第二个数在3458中产生,从第三个到第六个是0~9的数,那么我若是要匹配   最后的五个数为任意相同5个数,该怎么写呢?
作者: 王靖远    时间: 2013-7-9 21:23
(\\d)$1{4,}是这样吗。我也记不清了
作者: 张歆明    时间: 2013-7-10 09:17
楼主 第一位  第二位 和第三道第六位是这样子的  1[3,4,5,8]\d{4}
由于后面五位相同  下面应该是:(\d)\1{4}
组合起来是:1[3,4,5,8]\d{4}(\d)\1{4}

我写了一段测试代码  你看对你有帮助没
  1. import java.util.*;
  2. class Test2{
  3.         public static void main(String[] args){
  4.                 Scanner in =new Scanner(System.in);
  5.                 System.out.println("请输入手机号:");
  6.                 String telStr =in.next();
  7. //                String regex ="1[3,4,5,8]\\d{4}(\\d)\\1{4}";
  8.                 String regex ="1[3,4,5,8]\\d{4}(\\d)\\1{4}";
  9.                 if(telStr.matches(regex))
  10.                         System.out.println("后五位相同,恭喜!");
  11.                 else
  12.                         System.out.println("后五位不相同....");
  13.         }
  14. }
复制代码
运行结果:


testX.jpg (48.12 KB, 下载次数: 0)

testX.jpg

作者: 杨翔    时间: 2013-7-10 14:35
张歆明 发表于 2013-7-10 09:17
楼主 第一位  第二位 和第三道第六位是这样子的  1[3,4,5,8]\d{4}
由于后面五位相同  下面应该是:(\d)\1{4 ...

谢谢你啊
作者: 张歆明    时间: 2013-7-10 14:44
杨翔 发表于 2013-7-10 14:35
谢谢你啊

不客气 呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2