首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请问一个正则:匹配含有某个字符串的标签

2012-04-24 
请教一个正则:匹配含有某个字符串的标签假如有一段HTML是:HTML codeP ALIGNLEFTFONT FACETimes Ne

请教一个正则:匹配含有某个字符串的标签
假如有一段HTML是:

HTML code
<P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">        <B>以高效能电池技术应对光伏市场变动,这样是否是一个可行的方案?</B>         <FONT COLOR="#666666">[老胡 2012-4-16 10:50]</FONT>          <FONT COLOR="#0000FF">            <A HREF="event:0" TARGET=""><U>文本答疑</U></A>        </FONT>    </FONT></P><P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#D75509" LETTERSPACING="0" KERNING="0">        <B>可能星期五,我也不太确定</B>    </FONT></P><P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">           <B>请问是东汉末年分出的三国吗?</B>         <FONT COLOR="#666666">[三国迷 2012-4-17 18:01]</FONT>          <FONT COLOR="#0000FF">            <A HREF="event:1" TARGET=""><U>文本答疑</U></A>        </FONT>    </FONT></P><P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#D75509" LETTERSPACING="0" KERNING="0">        <B>恭喜你答对了!</B>    </FONT></P>


这是整理后是这样,以方便大家看。实际的文本就是一整串字符串连在一起。

我的想法是,里面有很多个<p>...</p>,其中有的p标签里含有一个<A HREF="event:数字"...,我要根据传入的数字,找到这个(event:+数字)字符串所属的直系p,并将这个p里面的(<B>XXXXX</B>)通过分组取出来

打个比方说:

参数为1,那么我根据一段正则, ...event:1... 去查找到
HTML code
<P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">           <B>请问是东汉末年分出的三国吗?</B>         <FONT COLOR="#666666">[三国迷 2012-4-17 18:01]</FONT>          <FONT COLOR="#0000FF">            <A HREF="event:1" TARGET=""><U>文本答疑</U></A>        </FONT>    </FONT></P>

然后提取出这个P里面唯一的:
HTML code
<B>请问是东汉末年分出的三国吗?</B>

然后得到最终的字符串:
HTML code
请问是东汉末年分出的三国吗?


最终取出来的希望是这样的分组:

$0 对应的P标签全部内容
$1 请问是东汉末年分出的三国吗?

(第一组返回该条件字符串所属的<p>标签内容,第二组返回里面<b>标签里的文本内容)

不知道描述的够不够清楚,请大家给予帮助,万分感谢!

[解决办法]
<P.+?>[\d\D]+?<B>(.+?)</B>[\d\D]+?<A HREF="event:\d+"[\d\D]+?</p>
[解决办法]
HTML code
<!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>无标题页</title></head><body><div id='d'><P ALIGN="LEFT">    <FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">           <B>请问是东汉末年分出的三国吗?</B>         <FONT COLOR="#666666">[三国迷 2012-4-17 18:01]</FONT>          <FONT COLOR="#0000FF">            <A HREF="event:1" TARGET=""><U>文本答疑</U></A>        </FONT>    </FONT></P></div><script>var regex = /<p([\s\S](?!<\/p>))+?<b>(([\s\S](?!<\/p>))+?)<\/b>([\s\S](?!<\/p>))+?href="event:1"([\s\S](?!<\/p>))+[\s\S]<\/p>/ivar html = document.getElementById('d').innerHTML;var mc = html.match(regex);alert(mc[2])</script></body></html> 

热点排行
Bad Request.