正则表达式相关知识总结记录(日常开发)

本文详细介绍正则表达式的各种应用场景及技巧,包括数量词、字符类、逻辑运算符等核心概念,并提供实用代码示例。

正则表达式相关知识总结记录(日常开发)

  • 首先,直接给出日常开发最常用的一些正则表达式的判断!

常用正则表达式

可以在idea中下载any-rule插件进行快捷使用

//第一部分:1 表示手机号码只能以1开头
//第二部分:[3-9] 表示手机号码第二位只能是3-9之间的
//第三部分:\\d{9} 表示任意数字可以出现9次,也只能出现9次
* 手机号码:1[3-9]\\d{
   
   9}

//一:区号@\\d{2,3}0:表示区号一定是以0开头的; \\d{2,3}:表示区号从第二位开始可以是任意的数字,可以出现2到3次。
//二:- ?表示次数,日次或一次
//三:号码 号码的第一位也不能以日开头,从第二位开始可以是任意的数字,号码的总长度:5-10位

* 座机号码:0\\d{
   
   2,3}-?[1-9]\\d{
   
   4,9}
//邮箱号码
//3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn
//思路:在书写邮箱号码正则的时候需要把正确的数据分为三部分
//第一部分:@的左边 \\w+     任意的字母数字下划线,至少出现一次就可以了
//第二部分:@ 只能出现一次
//第三部分:
//      3.1         .的左边[\\w&&[^_]]{2,6} 任意的字母加数字,总共出现2-6次(此时不能出现下划线)
//      3.2         . \\.  点符号需要\\进行转义输出
//      3.3         大写字母,小写字母都可以,只能出现2-3次[a-zA-Z]{2,3}
//      (\\.[a-zA-Z]{2,3}){1,2} ()代表分组,我们可以把3.2和3.3看成一组,这一组可以出现1次或者两次

* 邮箱号码:\\w+@[\\w&&[^_]]{
   
   2,6}(\\.[a-zA-Z]{
   
   2,3}){
   
   1,2}

* 24小时:([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d
	   ([01]\\d|2[0-3])(:[0-5]\\d){
   
   2}

* 用户名:	\\w{
   
   4,16}

* 身份证号码,简单校验:
		[1-9]\\d{
   
   16}(\\d|X|x)
		[1-9]\\d{
   
   16}[\\dXx]
		[1-9]\\d{
   
   16}(\\d(?i)X)

* 身份证号码,严格校验:
		[1-9]\\d{
   
   5}(18|19|20)\\d{
   
   2}(0[1-9]|1[0-2])(0[1-9|[12])\\d|3[01])\\d{
   
   3}[\\dXx]

正则表达式

  • 写在前面,正则表达式是通过字符规则+数量词来规定字符串要求格式的一种规范。字符规则部分只针对单个字符
    • 若字符串长度与正则表达式规定字符规则+数量词的长度不同,则直接判断不合规则
    • 若正则表达式没有规定数量词,则默认一个字符规则对应一个字符

1.1正则表达式-数量词

  • 语法示例:

    前面的X代表一个字符,后面跟着的符号代表出现次数的规则

    1. X? : 0次或1次
    2. X* : 0次到多次
    3. X+ : 1次或多次
    4. X{n} : 恰好n次
    5. X{n,} : 至少n次
    6. X{n,m}: n到m次(n和m都是包含的)
  • 代码示例:

    public class Demo {
         
         
    	public static void main(String[] args) {
         
         
    		 // 必须是数字 字母 下划线 至少 6位
            System.out.println("2442fsfsf".matches("\\w{6,}"));//true
            System.out.println("244f".matches("\\w{6,}"));//false
            
            // 必须是数字 字母 下划线 至少 6位,最多9位
            System.out.println("2442fsfsf".matches("\\w{6,9}"));//true
    
            // 必须是数字和字符 必须是4位
            System.out.println("23dF".matches("[a-zA-Z0-9]{4}"));//true
            System.out.println("23 F".matches("[a-zA-Z0-9]{4}"));//false
            System.out.println("23dF".matches("[\\w&&[^_]]{4}"));//true
            System.out.println("23_F".matches
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值