RegexDemo-正则
发布时间:2020-12-14 01:58:41 所属栏目:百科 来源:网络整理
导读:* 1,正则表达式: 符合一定规则的表达式。 * 作用:用于专门操作字符串。 * 特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。 * 学习表达式,就是学习一些特殊符号的使用。 * 好处:可以简化对符号的复杂操作。 * 弊端:符号定义越多,正则越
* 1,正则表达式: 符合一定规则的表达式。 * 作用:用于专门操作字符串。 * 特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。 * 学习表达式,就是学习一些特殊符号的使用。 * 好处:可以简化对符号的复杂操作。 * 弊端:符号定义越多,正则越长,阅读性差。 * * 具体操作: * 1,匹配: string matches() 方法。 * 2,切割:String split(); * 3,替换:String replaceAll(); * 4,获取:将字符串中的符号规则的子串取出。 * 操作步骤: * 1,将正则表达式封装成对象。 * 2,将正则对象和要操作的字符串相关联。 * 3,管理后获取匹配引擎。 * 4,通过引擎将符合规则的子串进行操作,比如取出。 */ public class RegexDemo { public static void main(String[] args) { //check1(); //checkSplit(); //replaceAll(); //getDemo(); //repTest(); //splRepTest(); String str="我我....要要要...努力..学.......嘻嘻xxxxi嘻..."; str=str.replaceAll(".+",""); System.out.println(str); } public static void check1() { String qq="1237*45"; String regex="[1-9][0-9]{4,13}"; boolean flag=qq.matches(regex); if(flag) { System.out.println(qq+"---ok"); }else { System.out.println(qq+"...不合法"); } //手机号验证 String tel="13123456789"; String regex1="1[3658]d{9}"; System.out.println(tel.matches(regex1)); // 邮件地址的校验: String mail=" abcde23sf@sina.com"; //邮箱准确校验: String reg="[a-zA-Z0-9_]+@[a-zA-Z0-9]+( .[a-zA-Z]+){1,3}"; //reg=" w+@w+(.w+)+"; 不准确的校验; System.out.println(mail.matches(reg)); } public static void checkSplit() { String str1="abc.def.ghi.jklm.n"; String regex1="."; String[] strs=str1.split(regex1); for( String s: strs) { System.out.println(s); } String str2="abcaabbdefjjjjhiggz"; //按照叠词完成切割,为了让规则的结果被重用, //可以将规则封装成一个组,用()完成,组的出现都有编号。 //从1开始,使用已有的组可通过 n(n就是组的编号)来获取。 String regex2="(.)1+"; String[] strs2=str2.split(regex2); for( String s: strs2) { System.out.println(s); } } public static void replaceAll() { //将重叠的词换成$. 将重叠的字符换成单个字母 String str="abcaabbdefjjjjhiggz"; String regex="(.)1+"; String strs=str.replaceAll(regex,"&"); System.out.println(strs); } public static void getDemo() { String str="huo qu de cao zuo,dui xiang"; String regex=" b[a-z]{3,}b"; //将规则封装成对象。 Pattern p=Pattern.compile(regex); //正则对象与要作用的字符串相关联, 获取匹配器对象。 Matcher m=p.matcher(str); while(m.find()) { System.out.println(m.group()); System.out.println(m.start()+"..."+m.end()); } } public static void repTest() { String str="我我....要要要...努力..学.......嘻嘻xxxxi嘻..."; str=str.replaceAll(".+",""); System.out.println(str); str=str.replaceAll("(.)1+","$1"); System.out.println(str); } public static void splRepTest() { String ip=" 192.0.0.1 10.40.203.1 2.45.57.9 "; ip=ip.replaceAll("( d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*( d{3})","$1"); System.out.println(ip); String[] strs=ip.split(" "); TreeSet<String> ts=new TreeSet<String>(); for(String s:strs) { ts.add(s); } for(String s:ts) { s=s.replaceAll("0*( d+)","$1"); System.out.println(s); } } public static void getMail() throws Exception { URL url=new URL(" http://192.0.0.1:8080/myweb/mai.html"); URLConnection conn=url.openConnection(); BufferedReader bufIn= new BufferedReader(new InputStreamReader(conn.getInputStream())); String mailreg=" w+@w+(.w)+"; Pattern p=Pattern.compile(mailreg); String line=null; while((line=bufIn.readLine())!=null) { Matcher m=p.matcher(line); while(m.find()) { System.out.println(m.group()); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |