Theme NexT works best with JavaScript enabled
0%

Java正则表达式

^ _ ^

什么是正则表达式

正则表达式定义了一种字符串模式,用这个模式对字符串进行搜索,可以找到所有符合该模式的子字符串

正则表达式的使用

Java中正则表达式相关类定义在 java.util.regex 包中,主要包括以下三类:

  • Pattern : Pattern 对象是一个正则表达式的编译表示。
  • Matcher : Matcher 对象是对输入字符串进行匹配的引擎。
  • PatternSyntaxException : PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

基本使用

1
2
3
4
5
6
7
8
9
10
@Test
public void test01(){
String regex = ""; // 正则表达式
String content = ""; // 输入字符串
Pattern pattern = Pattern.compile(regex);
Matcher mathcer = pattern.matcher(content);
while(matcher.find()){
System.out.println(matcher.group(0));
}
}

反斜杠

正则表达式中有一些特殊符号,如\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 与任何非单词字符匹配。