zoukankan      html  css  js  c++  java
  • 正则表达式匹配提取字符串 ?! ?=

    A:<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png"  />  b.<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png"  />  Z、
    
    
            Pattern r = Pattern.compile("([A-Za-z])([::..、])(.+?)(?=((?!p|t)[A-Z_a-z][::..、]))");
            Matcher m = r.matcher("A:<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png"  />  b.<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png"  />  Z、");
    //        Pattern r = Pattern.compile("Window(?=95|98|NT|2000|3.1)");
    //        Matcher m = r.matcher("Windows95 Window95");
            while (m.find()) {
                System.out.print(m.group(1));
                System.out.print("-");
                System.out.print(m.group(3));
                System.out.println("");
            }

    输出

    A-<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png" />
    b-<img src="http://localhost:8443/image/20210903/f7dd0a30a2d01bf0a186120f96bf9af6/image7.png" />

    ((?!p|t)[A-Z_a-z][::..、])

    这串的意思是匹配不包含pt开头的英文字符且第二个字符为::..、

    ?=为预查不消耗匹配到的字符,也就是说匹配到了以b.做结尾的字符但是不消耗b.

    欢迎评论,一起学习,对大家有用请点个赞。
  • 相关阅读:
    【Linux基础总结】Linux基本环境
    mysql 源码安装
    windows内存映射文件
    TCHAR和CHAR类型的互转
    删除链表中重复的结点
    iptables防火墙
    两个链表的第一个公共结点
    无人值守安装linux系统
    dns服务 很多问题,后续再研究
    string 类型转换
  • 原文地址:https://www.cnblogs.com/GH0522/p/15243642.html
Copyright © 2011-2022 走看看