正则表达式(校验字符串)小结

  1. 正则表达式补充:
  • ?:
  • ?=
  • ?!
  • 案例:
    String str1 = "java自95年以来,经历了许多版本,现在用得最多的是Java8和JAVA11,因为这两个是长期支持的版本,相信在不久后JAVa17也会登上舞台";
    //需求1:爬取版本号为8,11,17的Java文本,但是只要Java,不要版本号
    //需求2:爬取版本为8,11,17的Java文本
    //爬取除了版本号为8,11,17的Java文本
    //1:定义正则表达式;
    //?理解为前面的数据Java,=表示Java后面要跟随的数据,但是在获取时,只获取前半部分
    //需求1:
    String regex1 = "(?i)java(?=8|11|17)";
    Pattern p = Pattern.compile(regex1);
    Matcher m = p.matcher(str1);
    while (m.find()) {
    String group = m.group();
    System.out.println(group);

    }

    //需求2:
    //定义正则表达式
    String regex2 = "(?i)java(8|11|17)";//方法1
    String regex3 = "(?i)java(?:8|11|17)";//方法2;?理解为前面的数据Java,:表示Java后面要跟随的数据,但是在获取时,获取全部
    Pattern compile = Pattern.compile(regex3);
    Matcher matcher = compile.matcher(str1);
    while (matcher.find()) {
    String group = matcher.group();
    System.out.println(group);
    }
    //定义正则表达式

    String regex4 = "(?i)java(?!8|11|17)";//?理解为前面的数据Java,!表示Java后面要去除的数据,但是在获取时,获取全部
    Pattern p2 = Pattern.compile(regex4);
    Matcher m2 = p2.matcher(str1);
    while (m2.find()) {
    String group = m2.group();

    System.out.println(group);
posted @ 2023-01-28 20:05  为zq  阅读(56)  评论(0)    收藏  举报