import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Author: ZhangHao
* @Description: 匹配测试
* @Date: 2020/4/30 9:44
* @Version: 1.0
*/
public class PatternTest {
public static void main(String[] args) {
System.out.println("----------等效-----------");
System.out.println(Pattern.matches("\\d+", "10"));
System.out.println(Pattern.compile("\\d+").matcher("10").matches());
System.out.println("----------遍历-----------");
Pattern numPattern = Pattern.compile("(一|二|三|四|五|六|七|八|九|十)个");
Matcher numMatcher = numPattern.matcher("ab十个cd一个");
while (numMatcher.find()) {
System.out.println(numMatcher.group());
}
System.out.println("----------位置-----------");
Pattern p = Pattern.compile("([a-z]+)(\\d+)[a-z]+");
Matcher m = p.matcher("abc123def");
System.out.println(m.groupCount());
m.find();
// 返回第一个匹配的第一个字符在整个字符串中的位置
System.out.println(m.start(1));
// 返回第一个匹配的最后一个字符在整个字符串中的位置
System.out.println(m.end(1));
System.out.println("----------替换-----------");
Pattern p1 = Pattern.compile("\\$\\{.*\\}");
Matcher m1 = p1.matcher("123${A}er${B}");
System.out.println(m1.replaceAll("C"));
Pattern p2 = Pattern.compile("\\$\\{[^\\}]\\}");
Matcher m2 = p2.matcher("123${A}er${B}");
System.out.println(m2.replaceAll("C"));
System.out.println("-----------分割----------");
Pattern p3 = Pattern.compile("\\s*[,;]\\s*");
System.out.println(p3.split("1, 2,3; 4").length);
}
}
----------等效-----------
true
true
----------遍历-----------
十个
一个
----------位置-----------
2
0
3
----------替换-----------
123C
123CerC
-----------分割----------
4