IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

【Java】正则表达式

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

使用正则表达式可以方便的对数据进行匹配,还可以执行更加复杂的字符串验证、拆分、替换功能。

常用的正则规范的定义

正则表达式(Regular Expression, regex, RE):是用来简洁表达一组字符串的表达式。

常用正则规范

规范 描述 备注
\ 表示反斜线(\)字符
\t 表示制表符 table
\n 表示换行 newline
[abc] 字符a、b或c
[^abc] 表示除了a、b、c之外的任意字符
[a-zA-Z0-9] 表示由字母、数字组成
\d 表示数字 Digit
\D 表示非数字
\w 表示字母、数字、下划线 Word
\W 表示非字母、数字、下划线
\s 表示所有空白字符(换行、空格等) Space
\S 表示所有非空白字符
^ 行的开头
$ 行的结尾
. 匹配除换行符之外的任意字符

数量表示(X表示一组规范)

规范 描述 备注
X 必须出现一次
X? 可以出现0次或1次
X* 可以出现0次、1次或多次
X+ 可以出现1次或多次
X{n} 必须出现n次
X{n,} 必须出现n次以上
X{n,m} 必须出现n ~ m次

逻辑运算符(X、Y表示一组规范)

规范 描述 备注
XY X规范后跟着Y规范
X|Y X规范或Y规范
(X) 作为一个捕获组规范

捕获组:
在正则中,小括号() 表示捕获组
这个组,也就是在匹配的时候,将某一部分的字符(串)作为组处理,这个组,可以在正则表达式的其它位置或者匹配的结果中使用,如:
^\s+([a-zA-Z]+?)\s.+$
匹配 ” abcd 这是什么”
如果没有小括号,那么匹配只有一个结果,也就是整个字符串” abcd 这是什么”
而添加了小括号,匹配就会有两个结果了:
1 ” abcd 这是什么”
2 “abcd”
也就是说额外用正则表达式捕获一个字符串

常用类型的正则表达式总结

//格式验证
public class Validate {

    //用户名验证
    public static Boolean userNameValid(String name) {
        //第一个字符为字母,而后匹配长度为2到9的字母、数字或者下划线
        return name.matches("^[a-zA-Z][a-zA-Z0-9_]{2,9}$");
    }

    //密码验证
    public static Boolean passWordValid(String pw) {
        //匹配长度为6到10的字母或数字
        return pw.matches("^[a-zA-Z0-9]{6,10}$");
    }

    //手机号验证
    public static Boolean mobilePhoneValid(String phone) {
        /*第一个字符为1,若第二个字符为3,则第三个字符为0到9的一个数字
        若第二个字符为4,则第三个字符为5或7
        若第二个字符为5,则第三个字符为0到3,5到9的一个数字
        若第二个字符为7,则第三个字符为01678中的一个数字
        若第二个字符为8,则第三个字符为0到9的一个数字
        后面还有8个数字*/
        return phone.matches("^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\\d{8}$");
    }

    //电话验证
    public static Boolean telephoneValid(String tele) {
        //3到5位数字 - 7到8为数字 加上( - 1位以上数字)()为可有可无
        return tele.matches("\\d{3,5}-\\d{7,8}(-\\d{1,})?");
    }

    //QQ号验证
    public static Boolean qqValid(String qq) {
        //第一位字符是1到9,后面的字符为匹配长度是4到14的0到9数字
        return qq.matches("[1-9][0-9]{4,14}");
    }

    //身份证号验证
    public static Boolean idValid(String id) {
        //15位数字 或者 17位数字加上一个数字或者X或者x
        return id.matches("^\\d{15}$|^\\d{17}(\\d|X|x)$");
    }

    //邮箱验证
    public static Boolean emailValid(String email) {
        /*一个或多个字母数字或者下划线 + 0个、1个或者多个 小数点或多个字母数字或者下划线
        + 一个@ +一个或多个字母数字下划线 + 0个、1个或者多个 小数点或多个字母数字或者下划线*/
        return email.matches("^(\\w)+(\\.\\w+)*@(\\w)+((\\.\\w+)+)$");
    }

    //网站验证
    public static Boolean websiteValid(String ws) {
        //(h或者H + 两个 t或者T + p或者P ://)或者(h或者H + 两个 t或者T + p或者P + s或者S://)+有若干个(若干个字母数字-~ 加上 一个.)+若干个字母数字-~/
        return ws.matches("^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+)[.])+([A-Za-z0-9-~/])+$");
    }

    //生日验证
    public static Boolean birthDateValid(String bd) {
        //四个数字 . 两个数字 . 两个数字
        //或者四个数字 - 两个数字 - 两个数字
        return bd.matches("(\\d{4}[.]\\d{2}[.]\\d{2})|(\\d{4}[-]\\d{2}[-]\\d{2})");
    }

    //中文名验证
    public static Boolean chineseNameValid(String cn) {
        //2到5个汉字
        return cn.matches("[\u4E00-\u9FA5]{2,5}");
    }
}

PS : 需要提醒的是,使用正则表达式大部分是双反斜杠字符(\\),如 一个点:\\.。
因为在字符串中需要用\转义一遍字符,再给正则表达式接收再正则转义。如\\.在字符串中\\转义为\,也就是说\\.转变成了\.,再传入正则表达式变为.。
如果在字符串里只写\.的话,第一步就被直接解释为.,之后作为正则表达式被解释时,就变成匹配任意字符了。

总结:也就是说,不仅字符串需要转义正则表达式也需要转义,如 \d,有两道转义,所以需要两个\。

文章永久链接:https://tech.souyunku.com/?p=20025


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(73) 打赏



未经允许不得转载:搜云库技术团队 » 【Java】正则表达式

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367