正则表达式的入门
1.正则表达式正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串 2.元字符:
3.方括号方括号括起来若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。
4.()–小括号将 () 之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域,这个元字符在字符串提取的时候非常有用。 5.限定修饰符使用限定修饰符来限定元字符出现的次数
6.几个样例import java.util.regex.Matcher; public class Regular { public static void main(String[] args) { testIsDigit(); testIsAlpha(); testIsID(); testStartEnd(); testIsTelePhoneNum(); testEmailAddre(); testIsHanZi(); testIsStartJava(); testSplit(); testReplace(); testPattern(); } private static void testPattern() { Pattern pattern = Pattern.compile(""); System.out.println(pattern.matches("[0-9]{6}","200038")); System.out.println(pattern.matches("d{6}","200038")); } private static void testReplace() { Pattern pattern = Pattern.compile("正则表达式"); Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World"); //替换第一个符合正则的数据 System.out.println(matcher.replaceFirst("Java")); pattern = Pattern.compile("正则表达式"); matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World"); //替换所有符合正则的数据 System.out.println(matcher.replaceAll("Java")); } private static void testSplit() { Pattern pattern = Pattern.compile(regexSplit); String data = "Java Hello World Java,Hello,World|Sun"; System.out.println(data+" split by:"+regexSplit); String[] strs = pattern.split(data); for (int i=0;i<strs.length;i++) { System.out.println(strs[i]); } } private static void testIsStartJava() { pressInfoByPattern("Java不是人",regexIsStartJava); pressInfoByPattern("dJava不是人",regexIsStartJava); } private static void testIsHanZi() { pressInfo("验证汉字",regexIsHanZi); } private static void testIsTelePhoneNum() { pressInfo("0733-5544",regexIsTelePhoneNumber); pressInfo("073-566544",regexIsTelePhoneNumber); pressInfo("073566544",regexIsTelePhoneNumber); pressInfo("073--566544",regexIsTelePhoneNumber); } private static void testStartEnd() { pressInfo("JJJKKK",regexIsJJJStartKKKEnd); pressInfo("JJJaaaaKKK",regexIsJJJStartKKKEnd); pressInfo("JJaaaaKKK",regexIsJJJStartKKKEnd); pressInfo("JJJaaaaKK",regexIsJJJStartKKKEnd); } private static void testIsID() { pressInfo("222222222222222",regexIsID); pressInfo("22222222221111",regexIsID); pressInfo("222222222211122221",regexIsID); pressInfo("22222222221112222",regexIsID); } private static void testIsAlpha() { pressInfo("da",regexIsAlpha); pressInfo("d1a",regexIsAlpha); } private static void testIsDigit() { pressInfo("21452",regexIsDigital); pressInfo("21a452",regexIsDigital); pressInfo("021452",regexIsDigital); } private static void testEmailAddre() { pressInfo("aaa@",regexIsEmail); pressInfo("aaaaaaaa",regexIsEmail); pressInfo("22222@22222fffyu.dfg.com",regexIsEmail); } private static void pressInfo(String data,String regex) { if(data.matches(regex)){ System.out.println(data+":is match regex:"+regex); }else{ System.out.println(data+":is not match regex:"+regex); } } private static void pressInfoByPattern(String data,String regex) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(data); if(matcher.matches()){ System.out.println(data+":is match regex:"+regex); }else{ System.out.println(data+":is not match regex:"+regex); } } } 7自己的话曾经,看到别人能用正则表达式,而自己不会,当时好自卑啊,觉得别人好厉害啊。直到后来,自己坐下来,好好的看了一些正则表达式的资料和例子后,觉得,啊,原来如此。也就是这样,一点都不复杂啊。绝知此事要躬行,古人的话还是有道理的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |