^ _ ^
什么是正则表达式
正则表达式定义了一种字符串模式,用这个模式对字符串进行搜索,可以找到所有符合该模式的子字符串。
正则表达式的使用
Java中正则表达式相关类定义在 java.util.regex 包中,主要包括以下三类:
Pattern: Pattern 对象是一个正则表达式的编译表示。Matcher: Matcher 对象是对输入字符串进行匹配的引擎。PatternSyntaxException: PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
基本使用
1 |
|
反斜杠
正则表达式中有一些特殊符号,如\d,\w等,在其他语言(如JavaScript)可以直接这样写。但是 Java 有些不一样,因为 Java 的转义符号是 \\ 而不是 \。
特殊字符
| 字符 | 说明 |
|---|---|
| \ | 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。 |
| ^ | 匹配输入字符串开始的位置。 |
| $ | 匹配输入字符串结尾的位置。 |
| * | 零次或多次匹配前面的字符或子表达式。 |
| + | 一次或多次匹配前面的字符或子表达式。 |
| ? | 零次或一次匹配前面的字符或子表达式。 |
| {n} | 正好匹配 n 次。 |
| {n,} | 至少匹配 n 次。 |
| {n,m} | 匹配至少 n 次,至多 m 次。 |
| ? | 当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是”非贪心的”。 |
| . | 匹配除”\r\n”之外的任何单个字符。 |
| (pattern) | 匹配 pattern 并捕获该匹配的子表达式。 |
| (?:pattern) | 匹配 pattern 但不捕获该匹配的子表达式。 |
| (?=pattern) | 例如,’Windows (?=95 |
| (?!pattern) | 例如,’Windows (?!95 |
| x|y | 匹配 x 或 y。 |
| [xyz] | 字符集。匹配包含的任一字符。 |
| [^xyz] | 反向字符集。匹配未包含的任何字符。 |
| [a-z] | 字符范围。匹配指定范围内的任何字符。 |
| [^a-z] | 反向范围字符。 |
| \b | 匹配一个字边界,即字与空格间的位置。 |
| \B | 非字边界匹配。 |
| \cx | 匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回车符。 |
| \d | 数字字符匹配。 |
| \D | 非数字字符匹配。 |
| \s | 匹配任何空白字符。 |
| \S | 匹配任何非空白字符。 |
| \w | 匹配任何字类字符,包括下划线。 |
| \W | 与任何非单词字符匹配。 |