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

2023-12-13 06:46:56

????????正则表达式(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
    }
}
 

文章来源:https://blog.csdn.net/m0_37649480/article/details/134882511
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。