正则匹配内容

vip__888 2010-05-27 12:32:48
咱正则不行
<td height="25" colspan="2" align="left"><span class="fontRed" style="font-size:14px">我要的内容</span></td>

在一个html页面里
我要的内容如何取到?
...全文
830 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
newdigitime 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nocallstle 的回复:]
为什么非要用正则,jquery不是可以解决这样的问题么

$("sqan").next("span").html();取到当前sqan下的span的内容
当然我这样直接写是有问题,大致的思路就是这样
[/Quote]
估计楼主是采集别人的页面,在后台用正则提值吧.

如果是在客户端,还可用W3C标准的HTML DOM
var spans=document.getElementsByTagName("span");
var allstr;
for (var i=0,i<spans.length,i++)
{
allstr+=";"+spans[i].childNode[0].nodevalue;
//或者 allstr+=spans[i].innerHTML;
}
兔子-顾问 2010-05-28
  • 打赏
  • 举报
回复
<span[^>]*>([\s\S]*)</span>

取分组1即可
netwar 2010-05-28
  • 打赏
  • 举报
回复
<td height="25" colspan="2" align="left"><span class="fontRed" style="font-size:14px">我要的内容</span></td>

String pattern=@"<span class=""fontRed"">([\s\S].*?)</span>";
wanghuaide 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nocallstle 的回复:]

jquery
$("span");

------------------
<td id="td1" height="25" colspan="2" align="left"><span class="fontRed" style="font-size:14px">我要的内容</span></td>

$("#td1").find("span");
$("td").find(……
[/Quote]Jquery好强大啊
minzhong20 2010-05-28
  • 打赏
  • 举报
回复
得学习一下哦
andyxl 2010-05-28
  • 打赏
  • 举报
回复
学习。
SK_Aqi 2010-05-28
  • 打赏
  • 举报
回复
膜拜高手
xrongzhen 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vip__888 的回复:]
哦 忘了说 我这是CS的
[/Quote]

上面都是在C#正则代码


@"(?is)<span[^>]*>(.*?)</span>"
wuyq11 2010-05-27
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"(?i)(?<=<span.*?id=""s"".*?>)[^<]+(?=</span>)");
MatchCollection mc = reg.Matches(html);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[0].ToString() );
}

lester19872007 2010-05-27
  • 打赏
  • 举报
回复
第三贴。。。BS不留SF的!
lester19872007 2010-05-27
  • 打赏
  • 举报
回复
$str = 'XXXXXXXXX<span class="YYYYY">ZZ</span>XXXXXXXXXXX';
$preg = "/\<span[\s]*class\=\"(.*?)\"\>.*?\<\/span\>/sim" ;
preg_match_all($preg, $str, $strResult, PREG_PATTERN_ORDER);

返回数组:$strResult
$strResult[0][0] = '<span class="YYYYY">ZZ</span>';
$strResult[1][0] = 'YYYYY';
lester19872007 2010-05-27
  • 打赏
  • 举报
回复
(?i)(?<=<span[^>]*>[^<]*</span>)\s*a+
nocallstle 2010-05-27
  • 打赏
  • 举报
回复
jquery
$("span");

------------------
<td id="td1" height="25" colspan="2" align="left"><span class="fontRed" style="font-size:14px">我要的内容</span></td>

$("#td1").find("span");
$("td").find("span");
vip__888 2010-05-27
  • 打赏
  • 举报
回复
SF不留
nocallstle 2010-05-27
  • 打赏
  • 举报
回复
前端取到值,用控件接收,后台直接使用

再直接:
<td height="25" colspan="2" align="left"><span id="span1" ruant="server" class="fontRed" style="font-size:14px">我要的内容</span></td>

cs

this.span1.value
vip__888 2010-05-27
  • 打赏
  • 举报
回复
哦 忘了说 我这是CS的
nocallstle 2010-05-27
  • 打赏
  • 举报
回复
为什么非要用正则,jquery不是可以解决这样的问题么

$("sqan").next("span").html();取到当前sqan下的span的内容
当然我这样直接写是有问题,大致的思路就是这样
qq497525725 2010-05-27
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"(?is)<span[^>]*>(.*?)</span>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[1].Value + "\n";
}
lizhw86 2010-05-27
  • 打赏
  • 举报
回复
如果span里面还有嵌套的span,正则又该怎样写??
-过客- 2010-05-27
  • 打赏
  • 举报
回复
就是取span标签中的内容?

Regex reg = new Regex(@"(?is)<span[^>]*>(.*?)</span>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[1].Value + "\n";
}
加载更多回复(1)
JS正则表达式匹配