zoukankan      html  css  js  c++  java
  • .*?

    惰性匹配.*?

    1、. 匹配任意除换行符“ ”外的字符;
    2、*表示匹配前一个字符0次或无限次;
    3、?表示前边字符的0次或1次重复
    4、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;
    5、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
    如:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。

    ()

    (select(.*?)from)
    ()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
    String rule = "(select(.*?)from)";
    Pattern compile = Pattern.compile(rule);
    Matcher matcher = compile.matcher(sql);
    while(matcher.find()){
        String sqlSelect = matcher.group(0);    
    }
    

     这段代码查找多次出现包含 select from的语句

    (,)?(\s)*".*?"(\s)*(,)?
    String fieldRule = "(,)?(\s)*".*?"(\s)*(,)?";
    Pattern compileField = Pattern.compile(fieldRule);
    Matcher matcherField = compileField.matcher(sqlSelect);
    while(matcherField.find()){
        String sqlField = matcherField.group(0);
    }
    

      

    这段代码查找包含双引号或,空白符之后有双引号的语句

     
  • 相关阅读:
    解决CHM文件不能浏览的问题
    SAS宏功能(下)
    python一句话求素数
    SAS与DBMS系统(SqlServer)通信
    CSS3圆角
    水平居中和垂直居中
    滚动条的控制
    快来给你的桌面加一只可爱的蟑螂吧 那个人
    自己用的PHP缓存类
    jquery 全反选
  • 原文地址:https://www.cnblogs.com/beilong/p/14549039.html
Copyright © 2011-2022 走看看