zoukankan
html css js c++ java
正则表达式获取HTML标记中的内容。(注:如果内容中含有回车符,请查看第三个例子)
几个获取简单HTML标记间内容
//
=====================Begin1========================
//
试验字符串
string
strTmp
=
string
.Empty;
//
正则表达式
string
tmpStr
=
string
.Empty;
//
取出指定HTML标记中的匹配项的值RegexOptions.IgnoreCase忽略大小写,RegexOptions.Multiline忽略多行显示,
//
tmpStr = "<title>([^<]*)</title>"
//
获取<title>之间内容
strTmp
=
@"
<add key='ConnectionString' value='server=localhost;database=数据库名;uid=sa;pwd=;pooling=true'/>
"
;
//
获取“database=”与“;”号之间的字符串:database=(.*);
tmpStr
=
"
database=([^;]*);
"
;
Match TitleMatch
=
Regex.Match(strTmp, tmpStr ,RegexOptions.IgnoreCase
|
RegexOptions.Multiline );
//
如下例子作语法参考用获取size的值,实际应用可能不会如此复杂
strTmp
=
"
><font color='red' size=6>WebForm3</font><
"
;
tmpStr
=
@"
<(\w+\s+\w+[=]+[']+\w+[']+\s+[size=]+\d)>
"
;
Match TitleMatch
=
Regex.Match(strTmp ,tmpStr , RegexOptions.IgnoreCase
|
RegexOptions.Multiline );
//
取出匹配项的值
string
tmpStrTitle
=
TitleMatch.Groups[
1
].Value;
//
替换掉HTML页中所有HTML标记
Label1.Text
=
Regex.Replace(Label1.Text.Trim(),
"
<.+?>
"
,
""
)
+
"
*********
"
+
TitleMatch.Groups[
1
].Value;
//
判断匹配正则表达式是否成功
if
(Regex.Match(tmpStr,
"
<.+?>
"
).Success)
{
//
操作
}
//
=====================End1========================
//
=====================Begin2========================
string
webDocContent
=
"
<a href=http://www.xxx.xxx/college/pages/default.htm target=_blank>师资队伍</A>
"
;
//
解释下面正则表达式:[\s]表示匹配空格字符,"+" 表示连接
string
strPattern
=
@"
a[\s]+href=(?<Link>[^\s>]+)[^>]*>(?<Text>[^<]*)</a>
"
;
//
获取链接显示的文字
MatchCollection Matches
=
Regex.Matches(webDocContent,strPattern,RegexOptions.IgnoreCase
|
RegexOptions.Compiled);
foreach
(Match NextMatch
in
Matches)
{
string
URL
=
NextMatch.Groups[
"
Link
"
].Value.ToString().Trim();
string
URLText
=
NextMatch.Groups[
"
Text
"
].Value.ToString().Trim();
Response.Write(URL
+
"
****
"
);
Response.Write(URLText);
}
//
=====================End2========================
//
=====================Begin3========================
string
strPageContent
=
string
.Empty;
StreamReader srPage
=
new
StreamReader(
@"
e:\save.txt
"
,System.Text.Encoding.GetEncoding(
"
gb2312
"
));
strPageContent
=
srPage.ReadToEnd();
srPage.Close();
//
(\\s)*表示0或多个空格符、回车符等,*表示比配0或多个。(.*?)表示除回车符外的所有信息
MatchCollection TitleMatchs
=
Regex.Matches(strPageContent,
"
<td width=\
"
85
%
\
"
class=\
"
common_text\
"
>((\\s)*(.*?)(\\s)*(.*?)(\\s)*(.*?)(\\s)*(.*?)(\\s)*)</td>
"
, RegexOptions.IgnoreCase
|
RegexOptions.Multiline );
int
tmpNum
=
0
;
//
循环正则表达式所获取的,满足表达式的内容集合
foreach
(Match NextMatch
in
TitleMatchs)
{
++
tmpNum;
Label1.Text
+=
tmpNum
+
"
<br>****
"
+
NextMatch.Groups[
1
].Value;
}
//
=====================End3========================
查看全文
相关阅读:
每日总结
每日总结
每日总结
每日总结
每日总结
每日总结
每日总结
每日总结
团队博客
团队博客
原文地址:https://www.cnblogs.com/hanguoji/p/630560.html
最新文章
1754. Largest Merge Of Two Strings
AtCoder Beginner Contest 190 E
CF1478C-Nezzar and Symmetric Array
类欧几里得算法
HeHe HDU-2879【积性函数推导】
CF1475 G- Strange Beauty【思维+递推】
AtCoder Regular Contest 111 A
CF1470B-Strange Definition
从零开始手写 redis(三)内存数据重启后如何不丢失?
从零开始手写缓存框架(二)redis expire 过期原理及实现
热门文章
从零开始手写缓存之如何实现固定缓存大小
java 注解结合 spring aop 自动输出日志新增拦截器与过滤器
如何从零开始设计权限管理系统
税后收入
面试官:谈一谈你对 redis 分布式锁的理解
java 注解结合 spring aop 实现日志traceId唯一标识
java 注解结合 spring aop 实现自动输出日志
apache kafka-01-kafka 入门介绍
团队冲刺2.2
团队冲刺2.1
Copyright © 2011-2022 走看看