Java正则表达式函数的使用及示例
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正则表达式的使用方法,可以在实际开发中带来很大的便利性。
