欢迎访问宙启技术站
智能推送

Java正则表达式函数的使用及示例

发布时间:2023-06-07 12:50:38

Java正则表达式函数的使用及示例

Java正则表达式是用来匹配字符串的一种技术,可以用来检查字符串中是否包含指定的文本,反映了Java强大的文本处理能力。本文将简要介绍Java正则表达式函数的使用以及示例。

Java正则表达式类:

Java提供了Pattern类和Matcher类来支持正则表达式的处理。其中Pattern类用来定义正则表达式的模式,Matcher类则用来执行匹配操作。

Pattern类定义:

public final class Pattern extends Object

匹配模式可以通过调用Pattern类中的compile()方法创建一个模式,该模式就是一个正则表达式,也可以通过其他语言中的正则表达式复制到Java程序中使用。

Matcher类定义:

public final class Matcher extends Object

Matcher类与Pattern类非常相似。它也包含了许多操作,在匹配上下文中执行匹配操作。

具体使用方法:

1.定义正则表达式

String regex = "hello\\sworld";

2.获取匹配器

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

3.匹配

boolean result = matcher.find();

其中,str为被检查的字符串。

常用的正则表达式语法:

1.字符组

[]里面可以放置任意字符,表示在文本中匹配括号内的字符之一。

[a-z]:表示匹配a到z之间的任意字符

[A-Z]:表示匹配A到Z之间的任意字符

[abc]:表示匹配a,b,c中任意一个

[^abc]:表示不匹配a,b,c中任意一个

2.限定符

*:表示匹配任意次数,包括0次

+:表示匹配至少一次,不能为0次

?:表示匹配至多一次,可以为0次,也可以为1次

{n}:表示匹配n次,n为数字

{n,}:表示匹配至少n次

{n,m}:表示匹配至少n次,至多m次

3.特殊字符

\d:表示数字,等价于[0-9]

\D:表示非数字,等价于[^0-9]

\s:表示空格,等价于[ \t

\x0B\f\r]

\S:表示非空格,等价于[^ \t

\x0B\f\r]

\w:表示字母或数字或下划线,等价于[0-9a-zA-Z_]

\W:表示非字母或数字或下划线,等价于[^0-9a-zA-Z_]

4.边界匹配

^:表示匹配字符串的开始位置

$:表示匹配字符串的结束位置

\b:表示匹配单词边界的位置

\B:表示不匹配单词边界的位置

示例:

1.匹配数字

String regex = "\\d+";//\d表示数字

String str = "123";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

if (matcher.find()) {

    System.out.println(matcher.group());

}

2.匹配邮箱地址

String regex = "\\w+@[a-z0-9]+\\.[a-z]+";

String str = "test@gmail.com";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

if (matcher.find()) {

    System.out.println(matcher.group());

}

3.匹配手机号码

String regex = "1\\d{10}";//手机号码为11位数字

String str = "18600000000";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

if (matcher.find()) {

    System.out.println(matcher.group());

}

4.匹配中国的固定电话号码

String regex = "0\\d{2,3}-\\d{7,8}";//国内的固定电话号码格式为XXX-XXXXXXX或XXXX-XXXXXXXX

String str = "010-1234567";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

if (matcher.find()) {

    System.out.println(matcher.group());

}

总结:

Java正则表达式是非常实用的一种技术,可以用于处理字符串中的各种文本匹配操作。了解Java正则表达式所涉及的类、方法以及常用的正则表达式语法。熟练掌握Java正则表达式的使用方法,可以在实际开发中带来很大的便利性。