Regex :
Java 的 java.util.regex.Pattern 类和 java.util.regex.Matcher 类的基本用法
Pattern 类有一个静态方法 static boolean Pattern.matches(String regex, CharSequence input) 可以用来测试一个正则表达式与某串字符是否匹配;用 Pattern类的静态工厂方法 static Pattern compile(String regex) 可以产生一个 Pattern 对象,这个对象的成员方法 Matcher matcher(CharSequence input) 返回依赖于当前 Pattern 的一个 Matcher 对象,这个 Matcher 对象可以执行一些成员方法,如 find() 来查找符合它所依赖的 Pattern 对象编译好的正则表达式规则的字符串。Sample:
利用 Matcher 对象 :1: Pattern pattern = Pattern.compile("<正则表达式>");2: Matcher matcher = pattern.matcher("<待匹配的字符序列>");3:
4: while (matcher.find()) { // find() 方法寻找下一个符合的字符串,寻找完毕返回 false5: System.out.println(matcher.group()); // 获取最后一个 find() 到的字符串6: }
利用 Pattern.matches() 方法:1: System.out.println(Pattern.matches("<正则表达式>", "<带匹配的字符串>")); // 匹配返回 true, 否则 false
利用 String.split() 方法:1: String source = "<待匹配的字符串>";2: Sting[] result = source.split("<正则表达式>"); //把匹配到的字符串存放在一个数组里面返回3: foreach(String item : result) {
4: System.out.println(item);
5: }
言归正传:下面介绍某种规则书写的正则表达式与哪些字符串匹配
单个字符的匹配:
System.out.println(Pattern.matches(".", "\n")); --> false
System.out.println(Pattern.matches("\\w", "_")); –> true
多个字符的匹配:
System.out.println(Pattern.matches("ggicci", "ggicci")); --> true
System.out.println(Pattern.matches("g{2}ic{2}i", "ggicci")); --> true
System.out.println(Pattern.matches("g{2,4}", "gggggg")); –> false
1: System.out.println(Pattern.matches("g?", "g")); --> true
2: System.out.println(Pattern.matches("g?", "")); --> true
3: System.out.println(Pattern.matches("g?", "gg")); --> false
1: System.out.println(Pattern.matches("g*", "")); --> true
2: System.out.println(Pattern.matches("g*", "g")); --> true
3: System.out.println(Pattern.matches("g*", "ggg")); --> true
1: System.out.println(Pattern.matches("g+", "")); --> false
2: System.out.println(Pattern.matches("g+", "g")); --> true
3: System.out.println(Pattern.matches("g+", "gggg")); --> true
|
评论