1.原则
匹配期望的文本,排除不期望的文本
必要易于控制和理解
NFA引擎保证效率(成功的效率和失败的效率)
2.匹配文件路径
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170308031-1022511258.png)
3.匹配浮点数
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170314390-1792317404.png)
4.匹配引号包含的内容,内容可以是转义的字符(\")
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170326687-488926086.png)
多选分支的最好不要有重叠部分(两者都可以匹配的情况)
5.
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170336328-800044436.png)
6.对正在表达式应用方式和目标数据做出合理的假设
7.消除每行(包括只有空格的行,行首与行尾的空白字符)
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170348515-757641804.png)
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170403062-2110759830.png)
匹配html标签
9.在html文件中获取url及对应的文字
保留所有的<a>元素
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170421484-1455654125.png)
筛选 文字和对应的url
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170428593-365710272.png)
分离主机,端口,路径
10.匹配主机部分
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170443984-1657362596.png)
11.用环视功能处理诸如右边出现了n的倍数次**记得给出算倍数的锚点位置(^,$,\<,\>)
eg:连续数字,五个为一组,筛选以44开头的组
![](https://images2015.cnblogs.com/blog/1011048/201608/1011048-20160819170455062-1539337163.png)