ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java编程中通用的正则表达式(一)

2026/9/14 1:41:45 拓冰建站 浏览量
Java编程中通用的正则表达式(一)

        正则表达式(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));  // trueSystem.out.println(isLink(link2));  // falseSystem.out.println(isLink(link3));  // true}
}