正则表达式语法
单个字符类
1.字符x
说明:没错,它表示的就是单个字母x
。
示例代码:
System.out.println("我是字母x吗?=="+"x".matches("x"));
System.out.println("我是字母x吗?=="+"a".matches("x"));
System.out.println("我是字母x吗?=="+"abx".matches("x"));
输出结果:
我是字母x吗?==true
我是字母x吗?==false
我是字母x吗?==false
2.字符\
说明:将下一个字符标记为特殊字符、文本、反向引用或八进制转义符。
3.字符\t
说明:制表符。表示一个tab字符(\u0009
)。
4.字符\n
说明:
①换行符。表示一个新行字符(\u000A
);
②八进制转义码。此时n应为八进制数(0-7);
5.字符\r
说明:回车符。表示一个回车字符(\u000D
)。
6.字符\f
说明:分页符。
某一类字符
1.字符[abc]
说明:表示a,b,c中的一个字符。
代码示例:
System.out.println("我是[abc]中的一个?=="+"a".matches("[abc]"));
System.out.println("我是[abc]中的一个?=="+"ab".matches("[abc]"));
System.out.println("我是[abc]中的一个?=="+"d".matches("[abc]"));
输出结果:
我是[abc]中的一个?==true
我是[abc]中的一个?==false
我是[abc]中的一个?==false
2.字符[^abc]
说明:表示除了a,b,c之外的一个字母。
代码示例:
System.out.println("a".matches("[^abc]"));
System.out.println("ab".matches("[^abc]"));
System.out.println("d".matches("[^abc]"));
输出结果:
false
false
true
3.字符[a-zA-Z]
说明:表示a-z或A-Z中的一个字母。
代码示例:
System.out.println("a".matches("[a-zA-Z]"));
System.out.println("A".matches("[a-zA-Z]"));
System.out.println("5".matches("[a-zA-Z]"));
System.out.println("ab".matches("[a-zA-Z]"));
输出结果:
true
true
false
false
4.字符[a-d[m-p]]
说明:等价于[a-dm-p],表示a-d,m-p(并集)。
5.字符[a-z&&[def]]
说明:表示d,e,f中的一个字母。等价于[def]。
6.字符[a-z&&[^bc]]
说明:表示a-z之间,除了b,c之外的一个字母。等价于[ad-z]。
7.字符[a-z&&[^m-p]]
说明:表示a-z之间,除了m-p之间字母之外的一个字母。等价于[a-lq-z]。
代码示例:
System.out.println("a".matches("[a-d[m-p]]"));
System.out.println("f".matches("[a-d[m-p]]"));
System.out.println("bc".matches("[a-d[m-p]]"));
System.out.println("d".matches("[a-z&&[def]]"));
System.out.println("bc".matches("[a-z&&[def]]"));
System.out.println("de".matches("[a-z&&[def]]"));
System.out.println("a".matches("[a-z&&[^bc]]"));
System.out.println("b".matches("[a-z&&[^bc]]"));
System.out.println("de".matches("[a-z&&[^bc]]"));
System.out.println("a".matches("[a-z&&[^m-p]]"));
System.out.println("m".matches("[a-z&&[^m-p]]"));
System.out.println("ab".matches("[a-z&&[^m-p]]"));
输出结果:
true
false
false
true
false
false
true
false
false
true
false
false
预定义字符
1.字符.
说明:任意一个字符(除了行终结符)。
示例代码:
System.out.println("\n".matches("."));
System.out.println("\r".matches("."));
System.out.println("\u0085".matches("."));
System.out.println("\u2028".matches("."));
System.out.println("\u2029".matches("."));
输出结果:
false
false
false
false
false
2.字符\d
说明:表示0-9中的某个数字。
3.字符\D
说明:表示一个非数字。
4.字符\s
说明:表示一个空白字符[\t\n\x0B\f\r]。
5.字符\S
说明:表示一个非空字符[^\s]。
示例代码:
System.out.println("3".matches("\\d"));
System.out.println("19".matches("\\d"));
System.out.println("3".matches("\\D"));
System.out.println("\r".matches("\\D"));
System.out.println("w".matches("\\D"));
System.out.println("we".matches("\\D"));
System.out.println(" ".matches("\\s"));
System.out.println("\r".matches("\\s"));
System.out.println("\n".matches("\\s"));
System.out.println("\r\n".matches("\\s"));
System.out.println("2".matches("\\S"));
System.out.println(" ".matches("\\S"));
输出结果:
true
false
false
true
true
false
true
true
true
false
true
false
6.字符\w
说明:表示一个字符[a-zA-Z_0-9]。
7.字符\W
说明:表示一个非字符[^\w]。
边界匹配
1.字符^
说明:表示一行的开始。
2.字符$
说明:表示一行的结束。
3.字符\b
说明:表示单词的边界,即单词与空格间的位置。例如,”er\b”匹配”never”中的”er”,但不匹配”verb”中的”er”。
4.字符\B
说明:表示非单词的边界。例如,”er\B”匹配”verb”中的”er”,但不匹配”never”中的”er”。
5.字符\A
说明:
6.字符\G
说明:
7.字符\Z
说明:
8.字符\z
说明:
参考:
1. Java 正则表达式;
2. Java中字符串及正则表达式简介;
3. Java正则表达式教程及示例;
4. Java表达式总结;