常用的正则表达式符号和规则
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文本模式。以下是一些常用的元字符和它们的含义:
-
.
:匹配任何单个字符(除了换行符)。 -
*
:匹配前面的元素零次或多次。 -
+
:匹配前面的元素一次或多次。 -
?
:匹配前面的元素零次或一次。 -
^
:匹配输入字符串的开始位置。 -
$
:匹配输入字符串的结束位置。 -
{n}
:精确匹配n次前面的字符或者表达式。 -
{n,}
:匹配n次或更多次前面的字符或者表达式。 -
{n,m}
:匹配至少n次,至多m次前面的字符或者表达式。 -
[abc]
:匹配方括号内的任何字符,例如a
、b
或c
。 -
[^abc]
:匹配除了方括号内字符的任何字符。 -
(pattern)
:匹配pattern并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到。 -
\d
:匹配数字,等价于[0-9]
。 -
\D
:匹配非数字,等价于[^0-9]
。 -
\s
:匹配任何空白字符,包括空格、制表符、换页符等等,等价于[ \f\n\r\t\v]
。 -
\S
:匹配任何非空白字符,等价于[^ \f\n\r\t\v]
。 -
\w
:匹配字母或数字或下划线或汉字,等价于[A-Za-z0-9_]
。 -
\W
:匹配任何非单词字符,等价于[^A-Za-z0-9_]
。
Java中的正则表达式类:Pattern和Matcher
在Java中,正则表达式的操作主要通过 java.util.regex
包中的两个类 Pattern
和 Matcher
来实现。
-
Pattern
类:这是一个正则表达式的编译表示。Pattern 对象是一个多态的表达式,给定的正则表达式必须首先被编译为此类的一个实例。然后,这个模式可以被用来创建 Matcher 对象,以便匹配任意字符序列。 -
Matcher
类:通过解释 Pattern 对象而得到的正则表达式匹配的引擎。所有的匹配操作都通过这个类完成。
import java.util.regex.Pattern;
import java.util.regex.Matcher;
// 创建 Pattern 对象
Pattern r = Pattern.compile("[a-z]+");
// 现在创建 matcher 对象
Matcher m = r.matcher("hello world");
boolean b = m.matches();