Java 正则表达式

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

Java中的正则表达式可以用于匹配、查找和替换字符串的表达式,它可以帮助我们在一个文本中快速找到符合特定模式的字符串。

Java中正则表达式的基本格式:

1
2
3
4
5
6
7
8
9
.:匹配任意字符
[]:匹配括号内的任意字符
[^]:匹配不在括号内的任意字符
\\d:匹配数字
\\D:匹配非数字
\\s:匹配空白字符
\\S:匹配非空白字符
\\w:匹配单词字符(字母、数字、下划线)
\\W:匹配非单词字符

创建一个简单的正则表达式的步骤:

1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
String s = "This is a test string including 123 and .&¥";
String pattern = "\\d+";
Pattern compile = Pattern.compile(pattern);
Matcher matcher = compile.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
}
}

创建一个简单的String字符串,使用Pattern类的compile方法创建了一个Pattern对象,并将模式作为参数传递给它。接下来,我们使用Matcher类的matcher方法创建了一个Matcher对象,并将要匹配的字符串作为参数传递给它。最后,我们使用Matcher类的find方法进行匹配操作,并使用group方法获取匹配到的结果。

关于Pattern类与Matcher类

Pattern类提供了一组方法来编译和解释正则表达式,并对其进行匹配和搜索。其中一些方法包括:

1
2
3
4
Pattern.compile(String regex):将给定的正则表达式编译为Pattern对象。
Pattern.matcher(CharSequence input):创建一个Matcher对象,用于匹配给定的输入字符串。
Pattern.split(CharSequence input):根据正则表达式将输入字符串拆分为子字符串数组。
Pattern.matches(String regex, CharSequence input):确定给定的输入字符串是否与给定的正则表达式匹配。

Matcher类则提供了一组方法来执行正则表达式的匹配和搜索。其中一些方法包括:

1
2
3
4
5
6
7
Matcher.find():在输入字符串中查找下一个匹配项。
Matcher.matches():尝试将整个输入序列与模式匹配,如果匹配成功则返回true。
Matcher.group():返回上一次匹配操作的匹配结果。
Matcher.start():返回上一次匹配操作中匹配的子字符串的起始索引。
Matcher.end():返回上一次匹配操作中匹配的子字符串的结束索引。
Matcher.replaceFirst():用指定的替换字符串替换第一个匹配项。
Matcher.replaceAll():用指定的替换字符串替换所有匹配项。
\与+

\d匹配单个数字字符。而\d+中的+表示匹配一个或多个前面的元素,也就是匹配一个或多个数字字符。
在Java中,\是一个转义字符,用于转义其他字符的含义,例如\n表示换行符。因此,如果要在正则表达式中使用\,需要使用\来转义它本身的含义,以表示一个普通的反斜杠字符。
因此,在Java正则表达式中,如果想匹配一个或多个数字字符,应该使用\d+的格式。

Author: oGnok

Permalink: http://lovelypanda.top/2023/10/26/javaregular/