正则表达式实例总结-------最短匹配
2010-05-26 11:32
387 查看
PERL:
设定要从一个字符串中查找到最短匹配:
比如: 字符串为 "<Font color=red>红色字<font color=blue>蓝色字</font>红色字结束</font>"
现在要查找到以真正匹配的 font 标记对,就需要用最短匹配,
即为找到: <font color=blue>蓝色字</font>
思路,匹配HTML标签。tag中的字符可以任意,但不可以是<或>,如果存在<或>,则<>必须是在""或''内部。如<input name="<">,按此匹配要求我们得到如下正则表达式:
< #开始尖括号"<"
( #任意数量的
"[^"]*" #双引号字符串
| #或者是
'[^']*' #单引号字符串
| #或者是
[^<>] #除去尖括号、单引号、双引号之外的其它文本 《精通正则表达式》200页写的是 [^'>"],我觉得中括号里排除的字
符中应该包括<,这样可以排除嵌套的情况。是否排除一个'或"视具体情况而定,如果严格按语法要求,是应该排除。
)*
> #结束尖括号
按此思路得到针对上述问题的正则表达式。
<font('[^']*'|"[^"]*"|[^<>])*> #<font开头,此处同上述思路中介绍的HTML标签匹配
((?!<font('[^']*'|"[^"]*"|[^'"<>])*>).)*? #排除环视,只有当不存在<front***>时才能成功。点号代表任意字符。
<//font> #</font>结尾
正则表达式的书写得视具体情况而定,此处只是一点思路,算不得答案。
设定要从一个字符串中查找到最短匹配:
比如: 字符串为 "<Font color=red>红色字<font color=blue>蓝色字</font>红色字结束</font>"
现在要查找到以真正匹配的 font 标记对,就需要用最短匹配,
即为找到: <font color=blue>蓝色字</font>
思路,匹配HTML标签。tag中的字符可以任意,但不可以是<或>,如果存在<或>,则<>必须是在""或''内部。如<input name="<">,按此匹配要求我们得到如下正则表达式:
< #开始尖括号"<"
( #任意数量的
"[^"]*" #双引号字符串
| #或者是
'[^']*' #单引号字符串
| #或者是
[^<>] #除去尖括号、单引号、双引号之外的其它文本 《精通正则表达式》200页写的是 [^'>"],我觉得中括号里排除的字
符中应该包括<,这样可以排除嵌套的情况。是否排除一个'或"视具体情况而定,如果严格按语法要求,是应该排除。
)*
> #结束尖括号
按此思路得到针对上述问题的正则表达式。
<font('[^']*'|"[^"]*"|[^<>])*> #<font开头,此处同上述思路中介绍的HTML标签匹配
((?!<font('[^']*'|"[^"]*"|[^'"<>])*>).)*? #排除环视,只有当不存在<front***>时才能成功。点号代表任意字符。
<//font> #</font>结尾
正则表达式的书写得视具体情况而定,此处只是一点思路,算不得答案。
相关文章推荐
- 常用的匹配正则表达式和实例
- 常用的匹配正则表达式和实例
- 常用的匹配正则表达式和实例
- 常用的正则表达式实例总结
- [正则表达式] 大小写字母和数字的字符匹配的实例
- Java基于正则表达式实现查找匹配的文本功能【经典实例】
- python类库31[正则表达式匹配实例]
- 序列元素和、正则表达式匹配、BFS最短路径问题
- Java经典实例:正则表达式,找到匹配的文本
- Java经典实例:正则表达式,替换匹配的文本
- Python 正则表达式---概念基础,匹配过程,表达式元字符和语法以及实例
- 正则表达式的总结及实例
- 常用的匹配正则表达式和实例
- 实例分析js和C#中使用正则表达式匹配a标签
- java正则表达式---最短匹配
- 常用的匹配正则表达式和实例[zt]
- 正则表达式8种匹配实例
- 常用的匹配正则表达式和实例 _asp.net技巧
- php中正则表达式的匹配和数据验证总结
- 《Linux Shell》笔记之grep与正则表达式(实例总结) 未完待续