C#中正则表达式匹配Html标签详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习记录1
以下是一段Html代码
其他内容... |
伊拉克战争! |
其他内容... |
正则表达式:<table.*(?=headline)
解释:这个正则表达式匹配表格的开始标记,能够返回开始标记直至“headline”之间的所有内容(换行除外)。就是我以上以红色标示出来的部分。
原理:
其他内容... |
伊拉克战争! |
其他内容... |
正则表达式:<table.*(?=headline)(.|\n)*?</table>
解释:它将会匹配最长的以<table border="0" width="11%" class="开始,以</table>
结束的字符串,就是我以上以红色标示出来的部分。
原理:<table.*(?=headline) #参见记录1的解释
(.|\n) #指示在两个或多个项之间进行选择,(z|f)ood 与“zood”或“food”匹配。
*? #应当与上一个(.|\n) 联合起来看,.*?
就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复,懒惰模式。
</table>#匹配的结束标记
注意:“(.|\n)”后面的“*”匹配0个到多个任意字符;而“?”使得“*”匹配范围最小化,即在找到表达式的下一部分之前匹配尽可能少的字符。</table>是表格的结束标记。
学习记录3
其他内容... |
伊拉克战争! |
其他内容... |
正则表达式:<(?
解释:匹配成对的HTML标签,它将会匹配Html标签及标签中的内容,本例中分三段匹配三个
原理:< #html标签中的<
(?
[^>]*>#非“>”匹配0到n次,及html的标签“>”
(.|\n) #指示在两个或多个项之间进行选择,(z|f)ood 与“zood”或“food”匹配。
*? #应当与上一个(.|\n) 联合起来看,.*?
就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复,懒惰模式。
\k
注意:“(.|\n)”后面的“*”匹配0个到多个任意字符;而“?”使得“*”匹配范围最小化,即在找到表达式的下一部分之前匹配尽可能少的字符。此例使用了分组命名及反向引用命名的组概念。