正则表达式(Regular Expression,简称RegEx),又称常规表示法、正则表示、正规表示式、规则表达式、常式、表达式等,是计算机科学中的一个概念。正则表达式是用于描述某种特定模式的字符序列,特别是用来匹配、替换或验证字符串。在很多程序设计语言中都有对正则表达式的支持,常用于字符串操作、输入验证、文本处理等方面。
1、判断字符串是否是邮箱
在Java中可以使用正则表达式来判断一个字符串是否是邮箱。以下为示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
private static final String EMAIL_REGEX = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
public static boolean isValidEmail(String email) {
Pattern pattern = Pattern.compile(EMAIL_REGEX, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
public static void main(String[] args) {
String email1 = "test@example.com";
String email2 = "test.example@com";
System.out.println(email1 + " is valid? " + isValidEmail(email1));
System.out.println(email2 + " is valid? " + isValidEmail(email2));
}
}
输出结果为:
test@example.com is valid? true
test.example@com is valid? false
2、判断字符串是否是手机号
public boolean isPhoneNumber(String str) {
String pattern = "^1[3-9]\\d{9}$"; // 手机号正则表达式
return str.matches(pattern);
}
这个方法接收一个字符串参数,并返回一个布尔值,如果字符串符合手机号的格式,则返回 true;否则返回 false。其中,^1[3-9]\d{9}$ 是一个表示手机号的正则表达式,其中:
- ^ 表示匹配字符串的开头
- 1 表示手机号的第一位为 1
- [3-9] 表示第二位为 3-9 中的任意一个数字
- \d{9} 表示后面连续的 9 个数字
- $ 表示匹配字符串的结尾
该正则表达式可以匹配国内主流的手机号格式,包括以 13、14、15、16、17、18、19 开头的手机号码。
3、判断字符串是否是字母数字
可以使用Java中的正则表达式匹配函数 matches()
,配合正则表达式 [a-zA-Z0-9]+
来判断字符串是否仅由字母和数字组成。
示例代码:
String str = "Abc123";
if(str.matches("[a-zA-Z0-9]+")){
System.out.println("该字符串仅由字母和数字组成");
}else{
System.out.println("该字符串不仅由字母和数字组成");
}
上述代码中,matches()
函数接收一个正则表达式作为参数,该正则表达式中包含 [a-zA-Z0-9]+
,表示匹配由字母和数字组成的字符串,如果匹配成功,则返回 true,否则返回 false。
4、判断字符串是否是链接
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LinkChecker {
public static boolean isLink(String str) {
Pattern pattern = Pattern.compile("^(http|https)://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(/\\S*)?$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
public static void main(String[] args) {
String link1 = "https://www.google.com/";
String link2 = "www.google.com";
String link3 = "https://www.google.com/search?q=java";
System.out.println(isLink(link1)); // true
System.out.println(isLink(link2)); // false
System.out.println(isLink(link3)); // true
}
}