【Java常用API】正则表达式练习

这篇具有很好参考价值的文章主要介绍了【Java常用API】正则表达式练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

请使用正则表达式完成如下需求

练习题1,需求如下:

练习题2,需求如下:

正则表达式总结


请使用正则表达式完成如下需求

练习题1,需求如下:

请编写正则表达式验证用户输入的手机号码是否满足要求

请编写正则表达式验证用户输入的邮箱号是否满足要求。

请编写正则表达式验证用户输入的电话号码是否满足要求。

【Java常用API】正则表达式练习,web,小白学JAVA,正则表达式,CTF,安全,web安全,Java

package Regex;

public class demon4 {
    public static <string> void main(String[] args) {
                /*
            需求
            请编写正则表达式验证用户输入的手机号码是否满足要求。请编写正则表达式验证用户输入的邮箱号是否满足要求。请编写正则表达式验证用户输入的电话号码是否满足要求。
            验证手机号码 13112345678 13712345667 13945679027 139456790271
            验证座机电话号码 020-2324242 02122442 027-42424 0712-3242434
            验证邮箱号码 3232323@qq.com zhangsan@itcast.cnn dlei0009@163.com dlei0009@pci.com.cn
        */

        //心得:
        //拿着一个正确的数据,从左到右依次去写。
        //13112345678
        //分成三部分:
        //第一部分:1 表示手机号码只能以1开头
        //第二部分:[3-9] 表示手机号码第二位只能是3-9之间的
        //第三部分:\\d{9} 表示任意数字可以出现9次,也只能出现9次
        String regex1 = "1[3-9]\\d{9}";
        System.out.println("13112345678".matches(regex1));
        System.out.println("13712345667".matches(regex1));

        System.out.println("-------------------------------------------------------");

        //座机电话号码
        //020-2324242 02122442 027-42424 0712-3242434
        //思路:
        //在书写座机号正则的时候需要把正确的数据分为三部分
        //一:区号0\\d{2,3}
        //      0:表示区号一定是以0开头的
        //      \\d{2,3}:表示区号从第二位开始可以是任意的数字,可以出现2到3次。
        //二:-   ?表示次数,0次或一次
        //三:号码  号码的第一位也不能以0开头,从第二位开始可以是任意的数字,号码的总长度:5-10位
        String regex2 = "0\\d{2,3}-?[1,9]\\d{4,9}";
        System.out.println("020-2324242".matches(regex2));
        System.out.println("0712-3242434".matches(regex2));
        System.out.println("02122442".matches(regex2));

        System.out.println("------------------------------------------------");


        //邮箱号码
        //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}
        //      我们可以把3.2和3.3看成一组,这一组可以出现1次或者两次
        String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3})(1,2)";
        System.out.println("3232323@qq.com".matches(regex3));
        System.out.println("zhangsan@itcast.cnn".matches(regex3));
        System.out.println("dlei0009@pci.com.cn".matches(regex3));

        System.out.println("--------------------------------------------");


        //24小时的正则表达式
        String regex4 = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";
        System.out.println("23:11:02".matches(regex4));
    }
}

练习题2,需求如下:

  • 请编写正则表达式验证用户名是否满足要求。

    要求:大小写字母,数字,下划线一共4-16位

  • 请编写正则表达式验证身份证号码是否满足要求。

    简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x

    复杂要求:按照身份证号码的格式严格要求。

练习代码如下:

package Regex;

public class demon5 {
    public static void main(String[] args) {
                /*
            正则表达式练习:
            需求
            请编写正则表达式验证用户名是否满足要求。要求:大小写字母,数字,下划线一共4-16位请编写正则表达式验证身份证号码是否满足要求。
            简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x复杂要求:按照身份证号码的格式严格要求。

            身份证号码:
            41080119930228457x
            510801197609022309
            15040119810705387X
            130133197204039024 I
            430102197606046442
        */

        //用户名要求:大小写字母,数字,下划线一共4-16位
        String regex1 = "\\w{4,16}";
        System.out.println("zhangsan".matches(regex1));
        System.out.println("@qwsd".matches(regex1));
        System.out.println("zhan_an".matches(regex1));

        System.out.println("--------------------------------");

        //身份证号码的简单校验
        //18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x
        String regex2 = "[1-9]\\d{16}(\\d|X|x)";
        System.out.println("41080119930228457x".matches(regex2));
        System.out.println("510801197609022309".matches(regex2));
        System.out.println("15040119810705387X".matches(regex2));
        System.out.println("430102197606046442".matches(regex2));


        //忽略大小写的书写方式
        //在匹配的时候忽略abc的大小写
        String regex3 = "(?i)abc";
        System.out.println("--------------");
        System.out.println("ABC".matches(regex3));//true
        System.out.println("AbC".matches(regex3));//true


        //身份证号码的严格校验
        //编写正则的小心得:
        //第一步:按照正确的数据进行拆分
        //第二步:找每一部分的规律,并编写正则表达式
        //第三步:把每一部分的正则拼接在一起,就是最终的结果
        //书写的时候:从左到右去书写。

        //410801 1993 02 28 457x
        //前面6位:省份,市区,派出所等信息,第一位不能是0,后面5位是任意数字        [1-9]\\d{5}
        //年的前半段: 18 19 20                                             (18|19|20))
        //年的后半段: 任意数字出现两次                                         \\d{2}
        //月份: 01~ 09 10 11 12                                            (0[1-9]1[0-2])
        //日期: 01~09 10~19 20~29 30 31                                     (0[1-9]|[12]\\d|3[01])
        //后面四位: 任意数字出现3次 最后一位可以是数字也可以是大写x或者小写x           \\d{3}[\\dXx]
        String regex4 = "[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]";
        System.out.println("----------------------------------");
        System.out.println("41080119930228457x".matches(regex2));
        System.out.println("510801197609022309".matches(regex2));
        System.out.println("15040119810705387X".matches(regex2));
        System.out.println("430102197606046442".matches(regex2));
        
    }
}

正则表达式总结

【Java常用API】正则表达式练习,web,小白学JAVA,正则表达式,CTF,安全,web安全,Java

【Java常用API】正则表达式练习,web,小白学JAVA,正则表达式,CTF,安全,web安全,Java文章来源地址https://www.toymoban.com/news/detail-842602.html

到了这里,关于【Java常用API】正则表达式练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java 正则表达式【非贪婪匹配、格式验证、反向引用、API】

    非贪婪匹配的元字符是问号 ?  当此字符跟在任何其他限定符(*、+、?、{n}、{m}、{n,m})之后,匹配模式是 \\\"非贪心的\\\"。非贪心的意思就是每次匹配搜索到的尽可能短的字符串, 可以是0个 。 对比贪婪匹配和非贪婪匹配 贪婪匹配 输出结果: 非贪婪匹配 输出结果: 对字符串

    2024年02月13日
    浏览(12)
  • java 判断字符串中有汉字 (常用正则表达式)

    今天在开发中碰到了判断字符串中是否有汉字的问题,方便起见,记录下来以便后期查看。 1、判断汉字 2、判断数字 3、常用的正则表达式( 通过 Java常用正则表达式_正则表达式0到9_欧尼熊不懂的博客-CSDN博客) (1)校验数字的正则表达式 (2)校验字符的正则表达式 (

    2024年02月11日
    浏览(12)
  • java基础入门-12-【API(算法,lambda表达式,练习)】

    java基础入门-12-【API(算法,lambda表达式,练习)】

    ​ 数据结构是数据存储的方式,算法是数据计算的方式。 ​ 也叫做顺序查找 ​ 说明:顺序查找适合于存储结构为数组或者链表。 基本思想 基本思想 :顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值

    2024年02月05日
    浏览(32)
  • 正则表达式练习

    pycharm 见资源

    2024年02月13日
    浏览(10)
  • 正则表达式练习题(含答案)

    1. d,W,s,B,.,*,+,?分别是什么? d:数字 W:非英文数字下划线的任意字符 s:任意空白字符 B:非单词开始或结尾的位置 .表示非换行符的任意字符 *表示匹配前面子表达式0次或多次 +表示匹配前面子表达式1次或多次 ?表示匹配前面子表达式0次或1次 2. (?=a),(?!a),

    2024年02月06日
    浏览(10)
  • 【SQL-正则】利用正则表达式进行过滤操作(常用正则表达式)

    1、由数字、26个英文字母或者下划线组成的字符串 2、非负整数(正整数 + 0 ) 3、正整数 4、非正整数(负整数 + 0) 5、负整数 6、整数 7、非负浮点数(正浮点数 + 0) 8、正浮点数 9、非正浮点数(负浮点数 + 0) 10、负浮点数 11、浮点数 12、由26个英文字母组成的字符串 13、

    2024年02月12日
    浏览(20)
  • 正则表达式和文本三剑客题型练习

    正则表达式和文本三剑客题型练习

    ​ 1、显示/etc/passwd文件中以bash结尾的行; 解释:使用 grep 工具来搜索文件 /etc/passwd 中匹配模式 \\\'bash$\\\' 的行。 bash$ 是一个正则表达式,其中 $ 表示行结尾。因此, \\\'bash$\\\' 匹配以 bash 结尾的行。 运行结果: ​ 2、找出\\\"netstat  -tan”命令的结果中,以‘LISTEN’后跟0或多个空白字

    2024年02月06日
    浏览(11)
  • 正则表达式、常用的正则

    正则表达式(Regular Expression,简称为Regex或RegExp)是用于匹配和搜索文本模式的工具。它是一个强大且灵活的字符串处理工具,可以用来检查一个字符串是否符合特定的模式,或者从一个文本中提取满足条件的部分。 在正则表达式中,可以使用不同的元字符和特殊符号来定义

    2024年02月14日
    浏览(12)
  • 常用的正则表达式1

    1.Email地址:^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*$ 2.域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 3.电话号码 /^1(3d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8d|9[0-35-9])d{8}$/ 以1开头,3可跟任一数字(d),4可跟5-9,5可跟0-3或5-9 ,6后2567其中一个,7后是0-8,8后任一数字,9后是0-3或3-5,

    2024年01月23日
    浏览(7)
  • 10个常用的正则表达式

    2024年01月18日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包