正则表达式—HTML中的匹配
来源:互联网 发布:ftp上传软件 编辑:程序博客网 时间:2024/06/18 15:10
从HTML中文本中提取Email地址和http URL,是在做爬虫时候的经常用到的技术,虽然变成语言本身可以帮助我们找到他们,但是用正则表达式来匹配也是很有用和具有实际意义的方法。
一、匹配HTML Tag
HTML不是有特别严格编程要求的,因此在匹配时会遇到很多特殊情况需要特殊处理,这里仅仅给出一般化的解决方法:
【文本】ddd< input name=dir value=”>”>ddd
【解析】显然,文本中非转义字符>与闭尖括号的提取是难点,不能向往常一样[^>]来提取。
【表达式】 <(“[^”]*”|’[^’]*’|[^’”>])*>
“[^”]*”表示提取双括号的内容
‘[^’]*’表示提取单括号的内容
[^’”>]表示提取其他内容
【注意】也许你用<.*>也能匹配上述文本,但是实际情况时当你遇到的是ddd< input name=dir value=”>”>ddd< / input>时候,它将匹配全部。
二、匹配Link
【文本】< a href=”http://www.csdn.net”>my blog < / a >
【解析】要获取双引号或单引号中间的地址,但不是所有双引号的内容都是Link,“href=”很重要
【表达式】href\s*=\s*(“[^”]*”|”[^’]*”|[^”’>]+)
三、真实世界中提取URL
【文本】read the comments at http://www.baidu.com/ask_tik/index.html you can find …
【解析】URL类型包括:māilto, http, https, ftp
但是有时候文本中并不包含上诉开头,而是直接以www.baidu.com出现。
【表达式1】
(ftp|https?)://[-\w]+(.\w[-\w]*)+|
(?:[a-z0-9]( ? :[-a-z0-9][a-z0-9])?\.)+
(?:com\b
|edu\b
|gov\b
|org\b
|net\b
|[a-z][a-z]\b)
(
/
[^.!,?:”’<>()[]{}\s\x7F-\xFF]*
(?:[.!,?]+[^.!.?;”’<>()[]{}\s\x7F-\xFF])*
)?
【不包含特殊符号(?!=)的URL的表达式】https?://\w+(.\w+)+(\/\w+)*(.\w+)*
【包含特殊符号(?!=)的URL简化表达式】
https?://\w+(.\w*)+(?:\.com)*
(\/[^”’<>()[]{}\s\x7F-\xFF]*)*
- 正则表达式—HTML中的匹配
- 正则表达式匹配 html 中的转义字符
- 正则表达式匹配HTML
- C#正则表达式匹配HTML中的图片路径
- 用 C# 的正则表达式匹配 HTML 中的图片地址
- C#正则表达式匹配HTML中的图片路径
- 正则表达式匹配HTML内容
- 正则表达式匹配Html标签
- 正则表达式中的字符匹配
- 正则表达式中的模糊匹配
- java中的正则表达式匹配
- 正则表达式中的特殊匹配
- 匹配 html 标签元素的正则表达式
- 如何匹配嵌套Html标签(正则表达式)
- 正则表达式匹配html标签table
- 正则表达式匹配html class属性
- 使用正则表达式匹配嵌套Html标签
- 正则表达式匹配HTML单双标签
- 有序数组中位数问题
- 黑盾VIP最新汇编破解技术
- 找出最长连续数字串——2017杰科笔试题
- 解决删除chrome注册表残留问题
- JZOJ 3.25 1421【汕头市选2012初中组】数数(count)
- 正则表达式—HTML中的匹配
- 揭秘反汇编VIP视频系列教程[30课高清完整版]
- 解决虚拟机网卡没有IP地址的问题
- 二分搜索及其扩展
- c++作业3
- 2016最新黑客渗透培训教程 讲师:LX
- Android 通过 HTTPS 和 SSL 确保安全(含Https相关错误及解决方法)
- java 强,软,弱,虚引用
- CJOJ 2398 简单的数列