欢迎光临
一个有态度、有温度的分享型博客

Java正则表达式完全攻略及实战

正则表达式语法

单个字符类

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表达式总结

转载请注明出处:容休博客 » Java正则表达式完全攻略及实战

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址