黑马程序员技术交流社区

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

作者: hadexs    时间: 2013-7-3 16:19
标题: 正则表达式的相关问题
本帖最后由 杜光 于 2013-7-4 10:30 编辑

1.判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。
作者: 王靖远    时间: 2013-7-3 16:42
\\d{14,17}\\w 生日用substring取6到12就行了
作者: 超级小小二郎    时间: 2013-7-3 17:12
  1. import java.util.regex.Matcher;

  2. import java.util.regex.Pattern;



  3. public class RegexTest {



  4.       /**

  5.        * @param args

  6.        */

  7.       public static void main(String[] args) {

  8.             

  9.             // 测试是否为合法的身份证号码

  10.             String[] strs = { "13068119871209****", "13068119871209201x",

  11.                         "13068119871209201", "123456789012345", "12345678901234x",

  12.                         "1234567890123" };

  13.             Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");

  14.             for (int i = 0; i < strs.length; i++) {

  15.                   Matcher matcher = p1.matcher(strs[i]);

  16.                   System.out.println(strs[i] + ":" + matcher.matches());

  17.             }



  18.             Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); // 用于提取出生日字符串

  19.             Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日

  20.             for (int i = 0; i < strs.length; i++) {

  21.                   Matcher matcher = p2.matcher(strs[i]);

  22.                   boolean b = matcher.find();

  23.                   if (b) {

  24.                         String s = matcher.group(1);

  25.                         Matcher matcher2 = p3.matcher(s);

  26.                         if (matcher2.find()) {

  27.                               System.out.println("生日为" + matcher2.group(1) + "年"

  28.                                                  + matcher2.group(2) + "月"

  29.                                             + matcher2.group(3) + "日");

  30.                         }

  31.                   }

  32.             }

  33.       }

  34. }

复制代码

作者: 杜光    时间: 2013-7-4 10:30
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。




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