zoukankan      html  css  js  c++  java
  • 正则表达式

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

    https://baike.baidu.com/item/正则表达式/1700215?fr=aladdin

    正则符号:

    含义

    符号

    数字

    [0-9]   \d

    字母

    [a-zA-Z]

    空白字符

    [ fx0B]

    表示非

    [^规则]

    任意字符(换行除外)

    (点)

    正则开始

    ^

    正则结束

    $

    正则数量:

    符号

    含义

    +

    n≥1   1到多个

    *

    n≥0   0到多个

    ?

    0≤ n ≤1   0或1个

    {n}

    n个

    {n,}

    n ≤    n到多个

    {n,m}

    n≤num ≤m   n到m个

    正则逻辑:

    含义

    符号

    分组

    ()

      |

     什么都不写

     实例1:验证邮箱

    public class Judge {
        public static void main(String[] args) {
            //定义要匹配Email地址的正则表达式
            String regex = "\w+@\w+(\.\w{2,3})*\.\w{2,3}";
            String str1 = "aaa@";                //定义要进行验证的字符串
            String str2 = "aaaaa";
            String str3 = "1111@111ffyu.dfg.com";
            if(str1.matches(regex)) {            //判断字符串变量是否与正则表达式匹配
                System.out.println(str1+"是一个合法的Email地址格式");
            }
            if(str2.matches(regex)) {            //判断字符串变量是否与正则表达式匹配
                System.out.println(str2+"是一个合法的Email地址格式");
            }
            if(str3.matches(regex)) {            //判断字符串变量是否与正则表达式匹配
                System.out.println(str3+"是一个合法的Email地址格式");
            }
        }
    }

    正则表达式分析:

      通常情况下Email的格式为“X@X.com.cn”。字符X表示任意一个或多个字符,@为邮箱地址中的特有符号,符号@后还有一个或多个字符,之后是字符“.com”或“.cn”。字符集"\w"匹配任意字符,符号“+”表示字符可以出现一次或多次,表达式"(\.\w)*"表示形如“.com”格式的字符串可以出现0次或多次。而最后的表达式“\.\w+”用于匹配Email地址中的结尾字符,如“.com”。

    实例2:验证手机号

    import java.util.Scanner;
    
    public class Mobile {
        public static void main(String[] args) {
            //手机号是11位数字,前3位是136/130开头,后八位是随机数
            Scanner input = new Scanner(System.in);
            System.out.println("请输入手机号:");
            String phoneNumber = input.nextLine();
            //规则
            String gz = "^(([1][3][6])|([1][3][0]))([0-9]{8})$";
            boolean rel = phoneNumber.matches(gz);
            if (rel) {
                System.out.println("ok");
            }else {
                System.out.println("no");
            }
        }
    }

    实例3:验证邮箱

    //邮箱zhangsan_.abc@qq.com为例,前缀:字母、数字、下划线、点、减号,@,qq/126/139/sina,com/com.cn/org/cn
    public class EmailJudge {
        public static void main(String[] args) {
            String str = "asd123@qq.com";
            //规则
            String gz = "^([0-9a-zA-Z_.-]{3,18})"+"[@]"+"(([q]{2})|([1][2][6])|([1][3][9])|([s][i][n][a]))[.]"
            +"(([c][o][m])|([c][n])|([c][o][m][.][c][n]))$";
            boolean rel = str.matches(gz);
            if (rel) {
                System.out.println("ok");
            } else {
                System.out.println("no");
            }
        }
    }
  • 相关阅读:
    一个弹框表单复用create,edit表单操作
    数组去重,防抖节流,渲染几万条数据不卡页面,32个手撕JS,彻底摆脱初级前端
    解决vue表单回显数据无法修改的问题
    正则
    将UTC时间转换为当地的时间
    Vue页面上实时显示当前时间,每秒更新
    互联网协议
    记录:批量重命名文件夹下的文件
    IdentityServer4 无法登录,一直跳转登录界面
    同解与等价
  • 原文地址:https://www.cnblogs.com/xiaotao520/p/9205720.html
Copyright © 2011-2022 走看看