java正则表达式——总结
在JDK 1.4中,Java增加了对正则表达式的支持。
java与正则相关的工具主要在java.util.regex包中;此包中主要有两个类:Pattern、Matcher。
Pattern
模式类,正则表达式的编译表示形式。
更多有关Pattern类的内容请看java之Pattern类详解。
Matcher
匹配器类,通过解释 Pattern
对 character sequence
执行匹配操作的引擎。
更多有关Pattern类的内容请看java之Matcher类详解。
正则规则
特殊字符
对于一般字符:
System.out.println(Pattern.matches("a", "a"));// true
可以看出是没有问题的。
但是对于有些字符,比如:
System.out.println(Pattern.matches("{", "{"));
会报错:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition
Illegal repetition:非法的重复。
因此必须对特殊字符做处理,加\\转义即可。
System.out.println(Pattern.matches("\\{", "{"));// true
对于点号:
System.out.println(Pattern.matches(".", "."));// true System.out.println(Pattern.matches(".", "a"));// true
点号能匹配任何字符,所以若特定要匹配点号,应对点号转义。如下:
System.out.println(Pattern.matches("\\.", "."));// true System.out.println(Pattern.matches("\\.", "a"));// false
对于斜杠'\':
一个斜杠时,String s = "\";这种形式在java中是不合法的;
有语法错误:“String literal is not properly closed by a double-quote”。字符串字面值由双引号关闭不正确。因为斜杠将右引号转义了,所以字符串未正确结束。
需要再加一斜杠,String s = "\\";java中的'\'需要用'\\'来表示。
String s = "\\"; System.out.println(s);// \
匹配斜杠:
System.out.println(Pattern.matches("\\", "\\"));
报错:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
所以需要转义:
Matcher m = Pattern.compile("\\\\").matcher("\\"); while (m.find()) { System.out.println(m.group()); }
打印:
\
需要做转义处理的字符有:
{ | } | ( | ) | [ | ] | $ | * | + | | | . | ? | \\ | ^ |