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 (?<=C\s*)[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++中使用通过,如图:
今天的文章正则收藏分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55436.html