Java 正则表达式学习笔记
正则表达式基础
正则表达式是用于匹配字符串模式的一种语法。在Java中,正则表达式使用java.util.regex
包实现。
在正则表达式中,有一些特殊字符具有特定含义:
.
表示任意单个字符。*
表示前一个字符出现0次或多次。+
表示前一个字符出现1次或多次。?
表示前一个字符出现0次或1次。^
表示匹配输入字符串的开始位置。$
表示匹配输入字符串的结束位置。[]
表示匹配括号内的任意一个字符。|
表示或运算符。\
用于转义以上特殊字符。
Java中的正则表达式
在Java中,可以使用Pattern
类和Matcher
类来实现正则表达式的匹配。
javaCopy Codeimport java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "Java is a programming language";
Pattern pattern = Pattern.compile("Java");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("Found a match!");
} else {
System.out.println("No match found.");
}
}
}
在上述示例中,我们定义了一个字符串input
,然后创建了一个Pattern
对象来匹配字符串中的Java
子串。然后,我们创建了一个Matcher
对象,并使用find()
方法执行实际的匹配操作。
实例
匹配数字
javaCopy Codeimport java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "The number is 1234567890";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("Found a match: " + matcher.group());
}
}
}
在上述示例中,我们定义了一个包含数字的字符串input
,然后创建了一个正则表达式来匹配任意数量的数字。我们使用while
循环遍历所有匹配,并使用matcher.group()
方法获取匹配结果。
邮箱验证
javaCopy Codeimport java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "example@example.com";
Pattern pattern = Pattern.compile("\\b[\\w.%-]+@[-.\\w]+\\.[A-Za-z]{2,4}\\b");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("Valid email address.");
} else {
System.out.println("Invalid email address.");
}
}
}
在上述示例中,我们定义了一个包含电子邮件地址的字符串input
,然后创建了一个正则表达式来匹配电子邮件地址的格式。我们使用matcher.find()
方法来验证字符串中是否包含符合格式的电子邮件地址。