• 正则收藏


    1、百度文档

    http://wenku.baidu.com/link?url=dkpaAAk7kwwjkq_TMxDPkCfswDKOHQoUQRO2opVCqDitxTAz4DysF9JyJPZlDZMoFBO5t0EbIk4Dvdd3fnsZN_Pt9j9VOPdsJnvj6MwcmPa

    http://www.cnblogs.com/Jacklovely/p/5605861.html

    2、常用

         2.0 “()”  和  “[]” 的区别

                (土建|建筑)   : 只要包含“土建”   或者  “建筑” 就能识别,“土建”和“建筑”是一个整体

                 [土建|建筑]  : 只要包含"土","建","建",“筑” 四个任何一个都可以识别

         2.1 (土建|建筑)(?!(.*(分包|装饰)))   //包含土建或者建筑但是不能包含分包也不能包含装饰
         2.2 中括号+竖线表示并列关系,例如      

               [钢筋|圆钢|箍筋].*级

         2.3 不包含
              2.3.1 单个不包含:

                     2.3.1.1 格式   (?!(.*(不包含的内容)))   , 例子:  C.*现浇(?!(.*(楼梯))).*梁   :红色表示不能包含楼梯,蓝色:表示可以包含任何内容
              2.3.2 多个不包含格式:    (?!(.*(不包含A|不包含B)))

              2.3.3 疑惑:不能单独使用,例如,如果想判断一个字符串不包含楼梯,那么不能单独使用:(?!(.*(楼梯)))

                      如果单独,计算结果不理想,解决办法,在此表达式前面添加其他说明,或者将不包含的内容从括号提出一部分

              2.3.4 (?<!李智)土建(?![分包|装饰]) : 土建左边不能有李智,右边及不能有分、包、装、饰等任何一个字.

                      (?<!((李智).*))土建(?!(.*(分包|装饰))):土建左边可以有任何内容,但是不能有李智

                                                                                  土建右边可以有任何内容,但是不能有'分包' 或者 '装饰'

              2.3.5 土建(?!(.*(李智))):土建右边可以有任何内容,但是不能有李智

              2.3.6 土建(?!(李智)):土建后面不能紧跟李智

              2.3.7 (?<!((地).*))面砖             面砖左边可以有任何内容,但是不能有地

              2.3.8 (?<!地)面砖                    面砖不能紧跟在地后面

        2.4 一个数字:[0-9.]+

             例如:DN[0-9.]+mm2   ,可以匹配,DN10mm2, DN5mm2,DN34.8mm2

        2.5 导线.*[0-9.]+mm2(以内|以下)

              由于以内,一下是多个字符,所以不能使用中括号,必须使用小括号

        2.6 定额名称之间空白 s+

             匹配模式:防护栏杆s+[0-9.]+m    可以匹配:防护栏杆  0.9M

        2.7 向后查找

              2.7.1 取一个数字,这个数字的前面要包含一些字符

                       (?<=厚度(mm):)[0-9]+             数字前面要包含 厚度(mm):

              2.7.2 (?<=Cs*)[0-9]+(?=(现浇)?砼) 提取砼的型号数字

                        文本:实际厚度(mm):140 换为【C303现浇砼 碎石<31.5】[商砼]  将提取出来   303

       2.8 模板后面不能包含基础、墙、垫层、梁、板、楼梯

             模板(?!(.*(基础(s+|$)|墙|基础.*形|垫层(s+|$)|梁(s+|$)|板(s+|$)|柱(s+|$)|板.*形|楼梯)))

       2.9 不包含道路、桥梁、供水、排水、燃气、路灯

            ^((?!(道路|桥梁|供水|排水|燃气|路灯)).)*$

      2.10 只能包含:装饰 或者 装修,前后都不能包含土建,建筑
        (?<!((土建|建筑).*))(装饰|装修)(?!(.*(土建|建筑)))

     2.11 反向应用案例,例如下面一段html,只提取蓝色的项目名称

            项目名称</td> <td style="border-right:#000 1px solid;border-bottom:#000 1px solid;">良乡北站10KV出线电力沟道工程(第二标段)</td>

           正则如下:(?<=项目名称</td> <[^>]+>).*?(?=</td>)

    3、http://www.cnblogs.com/dwlsxj/p/3532458.html 

    3、mysql:http://www.jb51.net/article/72928.htm

    4、https://www.host900.com/index.php/articles/211/

    5、反向引用

         5.1 案例说明。将多个sql语句变为一个sql语句

    (select count(*) from ce_notice_file;
    (select count(*) from bid_invitation;
    (select count(*) from ce_open_bid;
    (select count(*) from ce_open_bid_detail;

    希望变成一下样式:

    select
    (select count(*) from ce_notice_file ) as ce_notice_file,
    (select count(*) from bid_invitation ) as bid_invitation,
    (select count(*) from ce_open_bid ) as ce_open_bid,
    (select count(*) from ce_open_bid_detail ) as ce_open_bid_detail

    5.2 需要在匹配中提取表名,并且在替换中重复应用匹配中的表名,正则如下:

         from (.*?);

         5.2.1 括号内容的东西=表名,在替换是可以使用  1 应用匹配到的表名

                  本正则的意思,匹配from和;之间的内容,并将from和;之间的内容存入一个变量 1

         5.2.2 替换表达式:

                  from 1 ) as 1,

        5.2.3 本正则在Notepad++中使用通过,如图:

          

        

     

     

  • 相关阅读:
    Mysql 创建用户并授权方法
    anyproxy 拦截响应
    Pycharm中加载和使用虚拟环境
    anyproxy 拦截发送请求
    微信小程序测试
    Django admin 后台管理
    Django简介
    Mysql root 密码忘记解决办法
    APP专项测试_启动性能分析
    Windows环境搭建Python虚拟环境
  • 原文地址:https://www.cnblogs.com/SouthAurora/p/5523428.html
Copyright © 2020-2023  润新知