正则表达式(huangwenquan123)

wx8849 2012-04-16 02:49:18

<span class="prodList_gridViewCell">
<!--DynamicProductGrid.ascx Product -->
<div style="margin-bottom: 5px">
<div style="height: 130px; overflow: hidden;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageWrapLabel">
<div style="text-align: center;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageLink" title="AHAVA Refreshing Cleansing Gel" href="/p-16557-ahava-refreshing-cleansing-gel.aspx"><img title="AHAVA Refreshing Cleansing Gel" src="//skincare-img.skinstore.com/resources/dynamic/store/indeximages/AH175-cleansing-gel.jpg"(图片路径) style="border-width:0px;" /></a></div>
</span>
</div>
<br>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_titleDiv" style="overflow:hidden;margin-bottom:8px;height:45px;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleWrapLabel"><a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleLink" href="/p-16557-ahava-refreshing-cleansing-gel.aspx">AHAVA Refreshing Cleansing Gel(商品名称)</a></span>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_shortDescriptionDiv" style="overflow:hidden;margin-bottom:5px;display:block;height:52px;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductDescriptionLabel" class="subNav">A mild cleanser that washes away makeup and impurities to leave skin clean and refreshed.(商品描述)</span>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ratingDiv" style="height:20px;overflow:hidden;display:block;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductReviewsImageLink" href="http://reviews.skinstore.com/7554/16557/reviews.htm"></a>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_badgeDiv" style="height:20px;overflow:hidden;margin-top:10px;display:none;">




</div>
<div style="margin-top: 10px; overflow: hidden;">
<span style="float: left">
<strong>$20.00(价格)
</strong>(价格)
</span>
</div>
<div style="margin-top: 5px; overflow: hidden;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductUnitLabel" class="subNav">3.4oz(规格)</span>
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductSKULabel" class="subNav">  <font color="black">|</font>  AH175(商品ID)</span>
</div>
<div class="clr">
</div>
<div style="margin-top: 12px; overflow: hidden; height: 25px;">
<span style="float: left;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductAddToCartImageLink" class="searchAddBtn" href="/checkout/shoppingCart.aspx?cProductID=16557"><img src="/resources/nav/nav_add_cart.gif" style="border-width:0px;" /></a></span> <span style="float: right">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductStockStatusLabel" class="stockStatus">In Stock(是否新品)</span></span>
</div>
</div>

<!--/DynamicProductGrid.ascx Product -->
</span>


页面上有很多个这样的span标签,我想取标签内括号前面的内容
...全文
420 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx8849 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 的回复:]
还差个“|”没弄掉,其他差不多了,你再处理下吧
[/Quote]

实际获取到的数据没有()号
newxdlysk 2012-04-17
  • 打赏
  • 举报
回复
还差个“|”没弄掉,其他差不多了,你再处理下吧
newxdlysk 2012-04-17
  • 打赏
  • 举报
回复

string input = @"<span class=""prodList_gridViewCell"">
<!--DynamicProductGrid.ascx Product -->
<div style=""margin-bottom: 5px"">
<div style=""height: 130px; overflow: hidden;"">
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageWrapLabel"">
<div style=""text-align: center;"">
<a id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageLink"" title=""AHAVA Refreshing Cleansing Gel"" href=""/p-16557-ahava-refreshing-cleansing-gel.aspx""><img title=""AHAVA Refreshing Cleansing Gel"" src=""(//skincare-img.skinstore.com/resources/dynamic/store/indeximages/AH175-cleansing-gel.jpg)"" style=""border-width:0px;"" /></a></div>
</span>
</div>
<br>
<div id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_titleDiv"" style=""overflow:hidden;margin-bottom:8px;height:45px;"">
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleWrapLabel""><a id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleLink"" href=""/p-16557-ahava-refreshing-cleansing-gel.aspx"">(AHAVA Refreshing Cleansing Gel)</a></span>
</div>
<div id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_shortDescriptionDiv"" style=""overflow:hidden;margin-bottom:5px;display:block;height:52px;"">
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductDescriptionLabel"" class=""subNav"">(A mild cleanser that washes away makeup and impurities to leave skin clean and refreshed.)</span>
</div>
<div id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ratingDiv"" style=""height:20px;overflow:hidden;display:block;"">
<a id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductReviewsImageLink"" href=""http://reviews.skinstore.com/7554/16557/reviews.htm""></a>
</div>
<div id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_badgeDiv"" style=""height:20px;overflow:hidden;margin-top:10px;display:none;"">




</div>
<div style=""margin-top: 10px; overflow: hidden;"">
<span style=""float: left"">
<strong>$(20.00)
</strong> </span>
</div>
<div style=""margin-top: 5px; overflow: hidden;"">
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductUnitLabel"" class=""subNav"">(3.4oz)</span>
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductSKULabel"" class=""subNav"">  <font color=""black"">|</font>  (AH175)</span>
</div>
<div class=""clr"">
</div>
<div style=""margin-top: 12px; overflow: hidden; height: 25px;"">
<span style=""float: left;"">
<a id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductAddToCartImageLink"" class=""searchAddBtn"" href=""/checkout/shoppingCart.aspx?cProductID=16557""><img src=""/resources/nav/nav_add_cart.gif"" style=""border-width:0px;"" /></a></span> <span style=""float: right"">
<span id=""ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductStockStatusLabel"" class=""stockStatus"">(In Stock)</span></span>
</div>
</div>

<!--/DynamicProductGrid.ascx Product -->
</span>
"
;
string pattern = @"(?is)(?<=(\<[^>]+?\>)+?)[^<]+?(?=(\</?[^>]+?>)+?)";
foreach(Match ma in Regex.Matches(input.Replace(" ",""), pattern))
{
if(!string.IsNullOrEmpty(ma.Value.Trim()))
Console.WriteLine(ma.Value);
}

Console.Read();
//
wx8849 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 的回复:]
引用 40 楼 的回复:
这样是不是不能用正则表达式来获取?
可以是可以,不过要通过多步验证匹配或替换
如果硬写成一句的话处理的分支条件以及回朔很多,效率很低。
你可以先获取每个span中的内容。
然后在判断是否有img 有的话取src
判断是否有strong 有的话取strong里的内容
判断有没有不需要的标签,例如上面的font标签
&nbsp;&nbsp;<f……
[/Quote]
你帮我写个获取这个span所有的数据,我在用程序来截取吧,我闲程序写太麻烦了,才想用正则式
谢谢了哦
huangwenquan123 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 的回复:]
这样是不是不能用正则表达式来获取?
[/Quote]可以是可以,不过要通过多步验证匹配或替换
如果硬写成一句的话处理的分支条件以及回朔很多,效率很低。
你可以先获取每个span中的内容。
然后在判断是否有img 有的话取src
判断是否有strong 有的话取strong里的内容
判断有没有不需要的标签,例如上面的font标签
  <font color="black">|</font>  CE016
有的话替换为空。
还是得要有规律
要自己总结出来。
wx8849 2012-04-17
  • 打赏
  • 举报
回复
你帮我看看这样能用正则式获取吗?不行,就帮我写个获取这个span标签里面的内容就好了,还是循环的哦,谢谢了
wx8849 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 的回复:]
这里获取的是所有标签内的内容以及图片的路径,以及不是font标签内的内容

C# code


string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"(?is)<img[^>]*?src=""([^""]+)""[^>]*?>|(?<=<(?!font\b)[^>]*?>)(?!……
[/Quote]

hi 我的页面上面有多个这样的span标签怎么弄啊?
huangwenquan123 2012-04-17
  • 打赏
  • 举报
回复
这里获取的是所有标签内的内容以及图片的路径,以及不是font标签内的内容

string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"(?is)<img[^>]*?src=""([^""]+)""[^>]*?>|(?<=<(?!font\b)[^>]*?>)(?!(?:\s*|(?: )*)<)([^<>]+?)(?=</?[^>]+?>)");
foreach (Match m in reg.Matches(str))
{
if (m.Groups[1].Success)
Console.WriteLine(m.Groups[1].Value);
else
Console.WriteLine(m.Groups[2].Value);
}
/*
//skincare-img.skinstore.com/resources/dynamic/store/indeximages/CE016-nylon-rou
nd.jpeg
CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small
Get professional results and cut styling time in half with this ceramic round br
ush.
$14.00
  CE016
/resources/nav/nav_add_cart.gif
In Stock

*/
newxdlysk 2012-04-17
  • 打赏
  • 举报
回复
你把html源码里的括号去掉就是了
wx8849 2012-04-17
  • 打赏
  • 举报
回复
获取这个标签里面的这些参数
wx8849 2012-04-17
  • 打赏
  • 举报
回复
就是在上面那个正则里面加个这样的条件
wx8849 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 51 楼 的回复:]
引用 50 楼 的回复:
引用 49 楼 的回复:
这里获取的是所有标签内的内容以及图片的路径,以及不是font标签内的内容

C# code


string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"(?is)<img[^>]*?src=""([^""]+)""[^>]*?>|(?<=<(?!fon……
[/Quote]
我试了,会取到这些值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Billion Dollar Brows - 20% Off Coupon FAB20</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="Billion Dollar Brows, Billion Dollar Brows Products, Billion Dollar Brows Reviews"></meta>
<meta name="description" content="Billion Dollar Brows and 6000+ other Skin care products at SkinStore.com: 115% Price Protection, Free Shipping, Billion Dollar Brows 20% Auto Ship Savings, Free Samples."></meta>
<link href="/css/template.css" type="text/css" rel="stylesheet" />
<link href="/css/search.css" type="text/css" rel="stylesheet" />
<link href="/css/department.css" type="text/css" rel="stylesheet" />
<link href="/css/brand.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/js/slider.js"></script>
<script type="text/javascript" src="/sharedCode/global.js"></script>
</head>
<body>
<div id="mainContainer" class="container_16">
<div class="grid_16" style="position: relative;">
<!-- title and breadcrumbs -->
<div id="titleBlock">
<span id="BreadCrumb1" style="font-weight:normal;"> <a href="/index.aspx">Home</a> : <a href="/brands/brands.aspx">Brands</a> : <a href="billion-dollar-brows.aspx">Billion Dollar Brows</a></span>
<br />
<br />


我现在只要页面上所有<span class=="prodList_gridViewCell">...........</span>标签里面的
huangwenquan123 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 50 楼 的回复:]
引用 49 楼 的回复:
这里获取的是所有标签内的内容以及图片的路径,以及不是font标签内的内容

C# code


string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"(?is)<img[^>]*?src=""([^""]+)""[^>]*?>|(?<=<(?!font\b)[^>]*?>)(?……
[/Quote]你把你的那个字符串放到这个路径下试试.
wx8849 2012-04-16
  • 打赏
  • 举报
回复
所有页面除了标签ID不一样其他都一样的
wx8849 2012-04-16
  • 打赏
  • 举报
回复
这样是不是不能用正则表达式来获取?
huangwenquan123 2012-04-16
  • 打赏
  • 举报
回复
你还是没有说清楚你的规律额...

比如

<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageWrapLabel">
<div style="text-align: center;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageLink" title="CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small" href="/p-15645-chi-air-expert-tourmaline-ceramic-nylon-round-brush-small.aspx">
<img title="CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small" src="//skincare-img.skinstore.com/resources/dynamic/store/indeximages/CE016-nylon-round.jpeg" style="border-width:0px;" /></a></div>
</span>
//这个span是要获取img的src

<span style="float: left">
<strong>$14.00</strong>
</span>
//这个span是要获取strong中的$14.00

<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductSKULabel"
class="subNav">  <font color="black">|</font>  CE016</span>
//这个span要获取CE016

<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductStockStatu
sLabel" class="stockStatus">In Stock</span></span>

//这个span要获取in Stock



这些有什么规律?
wx8849 2012-04-16
  • 打赏
  • 举报
回复

<span class="prodList_gridViewCell">
<!--DynamicProductGrid.ascx Product -->
<div style="margin-bottom: 5px">
<div style="height: 130px; overflow: hidden;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageWrapLabel">
<div style="text-align: center;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductImageLink" title="CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small" href="/p-15645-chi-air-expert-tourmaline-ceramic-nylon-round-brush-small.aspx"><img title="CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small" src="//skincare-img.skinstore.com/resources/dynamic/store/indeximages/CE016-nylon-round.jpeg" style="border-width:0px;" /></a></div>
</span>
</div>
<br>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_titleDiv" style="overflow:hidden;margin-bottom:8px;height:45px;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleWrapLabel"><a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductTitleLink" href="/p-15645-chi-air-expert-tourmaline-ceramic-nylon-round-brush-small.aspx">CHI Air Expert Tourmaline Ceramic Nylon Round Brush - Small</a></span>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_shortDescriptionDiv" style="overflow:hidden;margin-bottom:5px;display:block;height:52px;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductDescriptionLabel" class="subNav">Get professional results and cut styling time in half with this ceramic round brush.</span>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ratingDiv" style="height:20px;overflow:hidden;display:block;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductReviewsImageLink" href="http://reviews.skinstore.com/7554/15645/reviews.htm"></a>
</div>
<div id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_badgeDiv" style="height:20px;overflow:hidden;margin-top:10px;display:none;">




</div>
<div style="margin-top: 10px; overflow: hidden;">
<span style="float: left">
<strong>$14.00</strong>
</span>
</div>
<div style="margin-top: 5px; overflow: hidden;">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductUnitLabel" class="subNav"> </span>
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductSKULabel" class="subNav">  <font color="black">|</font>  CE016</span>
</div>
<div class="clr">
</div>
<div style="margin-top: 12px; overflow: hidden; height: 25px;">
<span style="float: left;">
<a id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductAddToCartImageLink" class="searchAddBtn" href="/checkout/shoppingCart.aspx?cProductID=15645"><img src="/resources/nav/nav_add_cart.gif" style="border-width:0px;" /></a></span> <span style="float: right">
<span id="ProductsSearchLayout_DynamicProductGrid1_ProductsDataList_ctl00_ProductStockStatusLabel" class="stockStatus">In Stock</span></span>
</div>
</div>

<!--/DynamicProductGrid.ascx Product -->
</span>


这是获取页面的数据,就取刚刚你取的那些值
huangwenquan123 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 的回复:]
我把真实的数据给你
[/Quote]= =老早就该帖出来了...
wx8849 2012-04-16
  • 打赏
  • 举报
回复
我把真实的数据给你
huangwenquan123 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 的回复:]
取括号扩起来的内容
[/Quote]

[Quote=引用 32 楼 的回复:]
我的1.TXT里面获取的参数是没有括号 的
[/Quote]
额。。。那到底要获取神马?
加载更多回复(30)

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧