正则校验简介

1. 什么是正则校验?        

正则校验就是使用正则表达式对字符串进行匹配和验证,以确定字符串是否符合特定的模式。在我们平时开发过程中常用到正则校验,比如,当你写一个用户注册登录功能时一定不希望用户去胡乱填写邮箱、手机号码等信息,再比如,当你写一个收集用户信息的系统时,也不希望用户去填写无效的证件号,等等。于是,在用户提交信息,到了后端后,我们要利用正则校验去验证一下,只有符合条件的数据,才给它入库。

2. 下面介绍一些基本的符号概念:

  • “.”:匹配任意一个字符,除换行符外。
  • “*”:匹配前面的子表达式零次或多次。
  • “+”:匹配前面的子表达式一次或多次。
  • “?”:匹配前面的子表达式零次或一次。
  • “[]”:定义一个字符类,匹配方括号内的任意字符。
  • “^”:匹配字符串的开始。
  • “$”:匹配字符串的结束。
  • “\d”:匹配一个数字,等价于 [0-9]
  • “\w”:匹配一个字母、数字或下划线字符,等价于 [a-zA-Z0-9_]
  • “\s”:匹配一个空白字符,包括空格、制表符、换页符等。

3. 一些常用的正则校验:

(1)验证电子邮件地址

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • “^[a-zA-Z0-9._%+-]+”:匹配以字母、数字、点、下划线、百分号、加号或减号开头的一段字符串。
  • “@[a-zA-Z0-9.-]+”:匹配一个 @ 后跟一个或多个字母、数字、点或减号。
  • “\.[a-zA-Z]{2,}$”:匹配一个点后跟两个或更多的字母,并且字符串以此结束。

注:因为这个 “.” 是特殊符号,所以这里面需要用 “\.” 来表示转义,表示实际的 "."。

(2)验证手机号(11位)

^\d{10}$
  • ^\d{10}$:匹配一个以 10 位数字组成的字符串。

(3)验证密码(至少八位,包含字母数字)

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
  • “^(?=.*[A-Za-z])”:匹配一个包含至少一个字母的字符串。
  • “(?=.*\d)”:匹配一个包含至少一个数字的字符串。
  • “[A-Za-z\d]{8,}$”:匹配由字母和数字组成的、至少 8 个字符长的字符串。

4. Java中的应用举例:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexValidation {
    public static boolean isValidEmail(String email) {
        String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String email = "example@example.com";
        System.out.println("Is valid email: " + isValidEmail(email));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值