• 正则表达式(常用)


    字符类(只匹配一个字符)

    1. 1.[abc] 只能是ab或者c
    2. 2.[^abc] 除了abc之外的任何字符。
    3. 3.[a-zA-Z] az之间,AZ之间。
    4. 4.[a-d[m-p]] ad或者mp之间。
    5. 5.[a-z&&[def]] azdef的交集。结果为:def
    6. 6.[a-z&&[^bc]] az和非bc的交集(等同于[ad-z]
    7. 7.[a-z&&[^m-p]] az和非mp的交集(等同于[a-lq-z]

    预定义字符类

    1. 8.. 任何字符
    2. 9.\d 数字:[0-9]
    3. 10.\D 非数字: [^0-9]
    4. 11.\s 空白字符:[ \t\n\x0B\f\r]
    5. 12.\S 非空白字符:[^\s]
    6. 13.\w 单词字符:[a-zA-Z_0-9]
    7. 14.\W 非单词字符:[^\w]

    Greedy 数量词

    1. 15.X? X,一次或一次也没有
    2. 16.X* X,零次或多次
    3. 17.X+ X,一次或多次
    4. 18.X{n} X,恰好 n 次
    5. 19.X{n,} X,至少 n 次
    6. 20.X{n,m} X,至少 n 次,但是不超过 m 次

    练习:

    1. public static void main(String[] args) {
    2. /*需求
    3. 请编写正则表达式验证用户输入的手机号码是否满足要求。
    4. 请编写正则表达式验证用户输入的邮箱号是否满足要求。
    5. 请编写正则表达式验证用户输入的电话号码是否满足要求。
    6. 验证手机号码
    7. 13112345678
    8. 13712345667
    9. 13945679027
    10. 139456790271
    11. 验证座机电话号码
    12. 0200-2324242
    13. 02122442
    14. 0271-42424
    15. 0712-3242434
    16. 验证邮箱号码
    17. 3232323@qq.com
    18. zhangsan@itcast.cnn
    19. dlei0009@163.com
    20. dlei0009@pci.com.cn
    21. */
    22. //验证手机号(以下为我们自己默认的规则,不一定是正确的)
    23. //第一位:1,第二位:3-9,第三到十一位:任意数字
    24. String regex1 = "1[3-9]\\d{9}";
    25. System.out.println("13112345678".matches(regex1));//true
    26. System.out.println("13712345667".matches(regex1));//true
    27. System.out.println("13945679027".matches(regex1));//true
    28. System.out.println("139456790271".matches(regex1));//false
    29. System.out.println("----------------------------------------");
    30. //座机号码(以下为我们自己默认的规则,不一定是正确的)
    31. //第一部分:区号
    32. // 第一位:0 第二位:1-9,第三到四位:任意数字,
    33. //第二部分:-
    34. // 第五位:-,
    35. //第三部分:号码(总长度4-7)
    36. //第六位:不能为0,
    37. //第七位以后:任意数字
    38. String regex2 = "0[^0]\\d{2}-[^0]\\d{3,6}";
    39. System.out.println("0200-1324242".matches(regex2));
    40. System.out.println("02122442".matches(regex2));
    41. System.out.println("0071-42424".matches(regex2));
    42. System.out.println("0712-3242434".matches(regex2));
    43. System.out.println("---------------------------------");
    44. //验证邮箱号码(以下为我们自己默认的规则,不一定是正确的)
    45. //第一部分@左边:任意单词字符最少一个,最多十个
    46. //第二部分:@
    47. //第三部分@右边.的左边:任意字母加数字2-6次
    48. //第四部分:域名{(.加2-3个英文字母)一起出现1-2次}
    49. String regex3 = "\\w{1,10}@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";
    50. System.out.println("3232323@qq.com".matches(regex3));
    51. System.out.println("zhangsan@itcast.cnn".matches(regex3));
    52. System.out.println("dlei0009@163.com".matches(regex3));
    53. System.out.println("dlei0009@pci.com.cn".matches(regex3));
    54. }

    详情可查询API搜索Pattern.

  • 相关阅读:
    Unity sln 和 csproj 基础
    ROS MoveIT2(humble)安装总结
    Canal-监听数据库表的变化
    微电影的特征有哪些?
    华为校招第三题 找最小数
    游戏道具平台|基于Springboot+Vue实现游戏道具平台系统
    软件测试系列——概述,用例设计
    哈里斯鹰算法优化BP神经网络(HHO-BP)回归预测研究(Matlab代码实现)
    【建造者模式】
    C++ std::make_unique和std::make_shared用法
  • 原文地址:https://blog.csdn.net/lmdbhf/article/details/126651284