• 正则表达式.java


    正则表达式的作用:

    ①可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性🧸

    🧩[]:只能是括号里的字符

    🧩[^]:除了括号里的字符

    🧩[- -]:表示两段范围,满足其一即可

    🧩[[]]:或者的意思,满足其一即可

    🧩.  :表示任何字符

    🧩\d:一个数字:[1-9]

    🧩\D:非数字:[^0-9]

    🧩\s:一个空白字符:[\t\n\x0B\f\r]

    🧩\S:非空白字符

    🧩\w:英文,数字,下划线

    🧩\W:一个非单词字符:[^\w]

    • 只能是a  b  c(一个括号只能匹配一次)
    1. System.out.println("只能是a b c(一个括号只能匹配一次)-----");
    2. System.out.println("a".matches("[abc]"));//true
    3. System.out.println("aa".matches("[abc]"));//false
    4. System.out.println("z".matches("[abc]"));//false
    • 不能出现a  b  c
    1. System.out.println("w".matches("[^abc]"));//true
    2. System.out.println("a".matches("[^abc]"));//false
    • a到z  A到Z (包头尾的范围)
    1. System.out.println("a".matches("[a-z[A-Z]]"));//true
    2. System.out.println("aa".matches("[a-z[A-Z]]"));//false
    3. System.out.println("0".matches("[a-z0-9]"));//true
    • 验证手机号码
    1. String regex1="1[3-9]\\d{9}";//第一个数字为1,第二个数字为3-9之间,后面9个为任意数字
    2. System.out.println("13567884537".matches(regex1));//true
    • 验证座机号码
    🧣020-2324242     02122442    027-42424    0712-3242434
    🧣区号:0\\d{2,3}:0开头,任意数字出现2-3次
    🧣?:出现0次或1次
    🧣号码:[1-9]//d{4,9}:不能以0开头,任意数字出现4-9次
    1. String regex2="0\\d{2,3}-?[1-9]\\d{4,9}";
    2. System.out.println("020-2324242".matches(regex2));
    3. System.out.println("02122442".matches(regex2));
    4. System.out.println("027-42424".matches(regex2));
    5. System.out.println("0712-3242434".matches(regex2));
    • 验证邮箱号
    🧣3232323@qq.com  zhangsan@ittcast.cnn  dlei0009@163.com  dlei0009@163.com.cn
    🧣+:表示至少出现一次
    1. String regex3="\\w+@[\\w&&[^_]]{2,7}(\\.[a-zA-Z]{2,3}){1,2}";
    2. //任意字母数字下划线,至少出现一次,必须出现@,字母数字可出现27次,
    3. //(必须出现.,a-z和A-Z之间的字母可出现23次)括号里面的情况,出现12
    4. System.out.println("3232323@qq.com".matches(regex3));
    5. System.out.println("zhangsan@ittcast.cnn".matches(regex3));
    6. System.out.println("dlei0009@163.com.cn".matches(regex3));
    • 验证时间
    1. String regex4="([01]\\d|2[0-3])(:[0-5]\\d){1,2}";
    2. System.out.println("23:11:10".matches(regex4));
    • 忽略大小写(?!)
    1. String regex5="(?i)abc";//忽略abc的大小写
    2. System.out.println("abc".matches(regex5));
    3. System.out.println("AbC".matches(regex5));
    4. System.out.println("ABC".matches(regex5));

    小结①

    🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳

    ②在一段文本中查找满足要求的内容🧸

    •  按要求爬取数据

    1. package day0423regexDemo;
    2. import java.util.regex.Matcher;
    3. import java.util.regex.Pattern;
    4. public class RegexDemo3 {
    5. public static void main(String[] args) {
    6. String str="Java啦啦" +"哈Java17太阳当空照Java10花儿对我笑Java2小鸟说早早早";
    7. //获取正则表达式的对象p,不是new出来的,调用构造方法来获取
    8. Pattern p=Pattern.compile("Java\\d{0,2}");
    9. //Matches:文本匹配器,作用:按照正则表达式的规则去读取字符串,从头开始读。就是在大串str中找符合规则的子串s
    10. //获取文本匹配器对象m
    11. Matcher m=p.matcher(str);
    12. while(m.find()){
    13. //m.find()的返回值是boolean类型,
    14. // 意思就是,拿着文本匹配器开始读,寻找是否有满足规则的子串
    15. // 没有,返回false
    16. // 有,返回true,在底层记录了符合规则子串的起始索引和结束索引+1
    17. //group()方法,根据find()记录的索引获取子串,并截取
    18. String s= m.group();
    19. System.out.println(s);
    20. }
    21. }
    22. }

     🥇🥇🥇结果

  • 相关阅读:
    基于 BERT 实现的情感分析(文本分类)----概念与应用
    【前端之旅】Axios看这一篇就够了
    MyBioSource鸭核糖核酸酶 A ELISA 试剂盒解决方案
    [buuctf]简单注册器
    HashMap底层分析
    21天经典算法之折半插入排序
    使用QT实现http里面的get和post
    常见的内置函数、可迭代对象、迭代器对象、异常捕获、异常捕获的用途、生成器对象、模块、绝对导入与相对导入、包的概念、模块
    Debezium的基本使用(以MySQL为例)
    为什么使用C#开发软件的公司和程序员都很少?
  • 原文地址:https://blog.csdn.net/2301_80250542/article/details/138141254