正则表达式的威力1_匹配matches()与切割split()
2015-11-23 18:53
330 查看
/* 正则表达式:符合一定规则的表达式 作用:用于专门操作字符串 特点:用一些特定的符号来表示一些代码操作,简化书写, 所以学习正则表达式就是在学习一些特殊符号的使用 好处:简化对字符串的复杂操作 弊端:符号定义越多,正则越长,阅读性越差 具体操作功能: 1,匹配:matches()方法 2,切割: split()方法 */ class RegexDemo { public static void main(String[] args) { splitDemo("zhangsan lisi wangwu"," +");//空格出现一次或者多次,按照多个空格切割 splitDemo("zhangsan.lisi.wangwu","\\.");//不能直接用“.”切割,得转义一下,用"\\." splitDemo("c:\\abc\\a.txt","\\\\"); splitDemo("deckkfsrroiaapwe","(.)\\1");//按照叠词切割,结果:dec fs oi pwe //第一次的结果在第二次重用,规则重用,将规则封装成组 //组的出现都有编号,从1开始,想要使用已有的组可通过 \n(组的编号) // (.)\1,第一位的内容在第二次再次出现 // ((())())有四组 //checkTel(); //checkQQ_1(); //demo(); } //切割字符串 public static void splitDemo(String str,String reg) { String[] arr=str.split(reg); for (String s:arr ) { System.out.println(s); } } //匹配功能 public static void demo() { String str="b867675"; String reg="[bcd]";//字符串只能有一个字符,且只能是b,c,d中的一个 String reg1="[bcd][a-z]";//第一位只能是b,c,d中的一个,第二位是小写字母 String reg2="[a-zA-Z][0-9]";//第一位字母,第二位数字 String reg3="[a-zA-Z]\\d";// 第二位是数字,\d代表数字 \w数字字母下划线 String reg4="[a-zA-Z]\\d?";//第二位可能没有,可能有一个数字 String reg5="[a-zA-Z]\\d*";//第二位有0个或多个数字 boolean b=str.matches(reg5); System.out.println(b); } //匹配手机号 public static void checkTel() { String tel="15023457612"; String telReg="1[358]\\d{9}"; System.out.println(tel.matches(telReg)); } /* 对QQ号码进行校验,要求: 5~15位,0不能开头,只能是数字 */ //使用正则表达式校验QQ public static void checkQQ_1() { String qq="1264489"; //String regex="[1-9][0-9]{4,14}";//第一位只能是1-9;第二位只能是0-9,一共出现4-14次 String regex1="[1-9]\\d{4,14}"; boolean flag=qq.matches(regex1); if (flag) { System.out.println(qq+"is OK"); } else System.out.println("不合法!"); } //最笨的方法,代码过于复杂 public static void checkQQ() { String qq="23kfwefewfwef"; int len=qq.length(); if (len>=5&&len<=15) { if (!qq.startsWith("0")) { try { long l=Long.parseLong(qq); } catch (NumberFormatException e) { System.out.println("出现非法字符!"); } /* char [] arr=qq.toCharArray(); boolean flag=true; for (int i=0;i<arr.length ;i++ ) { if (!(arr[i]>'0'&& arr[i]<'9')) { flag=false; break; } } if (flag) { System.out.println("qq:"+qq); } else { System.out.println("出现非法字符!"); } */ } else System.out.println("不可以用0开头!"); } else { System.out.println("长度不符合规定!"); } } }
相关文章推荐
- msql 正则表达式
- 正则表达式
- 匹配也惹祸
- Mootools 1.2教程 正则表达式
- 批处理FINDSTR正则表达式用法实例分析
- vbs正则表达式代码
- Erlang中的模块与模式匹配介绍
- C#使用正则表达式实现首字母转大写的方法
- c语言实现的带通配符匹配算法
- php中看实例学正则表达式
- PHP正则表达式之定界符和原子介绍
- PHP下常用正则表达式整理
- 批处理 正则表达式(findstr) 整理
- javascript实现的图片切割多块效果实例
- C#正则表达式的6个简单例子
- JavaScript类型系统之正则表达式
- javascript中的正则表达式使用指南
- C#中的正则表达式介绍
- 学习正则帮手笨狼正则练习器