nangua111111 发表于 2013-8-25 11:09:54

【已解决】正则提取问题?

本帖最后由 nangua111111 于 2013-9-7 12:08 编辑

<BR>
<TABLE align=center>
<TBODY>
<TR>
<TD><SPAN class=STYLE5>ok1 </SPAN></TD></TR></TBODY></TABLE><BR>
<TABLE class=shodow_box cellSpacing=0 cellPadding=4 width=560 align=center>
<TBODY>
<TR>
<TD class=mytable2 width=60 height=20>
<DIV align=right>111111</DIV></TD>
<TBODY>
<TR>
<TD height=1></TD></TR></TBODY></TABLE><BR>
<TABLE align=center>
<TBODY>
<TR>
<TD><SPAN class=STYLE5>ok2 </SPAN></TD></TR></TBODY></TABLE><BR>
<TABLE class=shodow_box cellSpacing=0 cellPadding=4 width=560 align=center>
<TBODY>
<TR>
<TD class=mytable2 width=60 height=20>
<TABLE cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD height=1></TD></TR></TBODY></TABLE><BR>
<TABLE align=center>
<TBODY>
<TR>
<TD><SPAN class=STYLE5>ok3 </SPAN></TD></TR></TBODY></TABLE><BR>
<TABLE class=shodow_box cellSpacing=0 cellPadding=4 width=560 align=center>
<TBODY>
<TR>
<TD class=mytable2 width=60 height=20>
<TABLE cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD height=1></TD></TR></TBODY></TABLE><BR>
<TABLE align=center>
<TBODY>
<TR>
<TD><SPAN class=STYLE5>ok4 </SPAN></TD></TR></TBODY></TABLE><BR>
<TABLE class=shodow_box cellSpacing=0 cellPadding=4 width=560 align=center>
<TBODY>
<TR>
<TD class=mytable2 width=60 height=20>
<TR></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD height=1></TD></TR></TBODY></TABLE>
<HR>
一共有 20 条符合条件的记录! </SPAN></SPAN>
<P class=STYLE5>&nbsp;</P></TD></TR></TBODY></TABLE></TH></TR></TBODY></TABLE></TD></TR>
<TR>
<TD background=images/bg.gif bgColor=#a9cfe4 height=33>
<DIV align=center></DIV></TD></TR>
<TR>
<TD bgColor=#666666 height=50>如何提取出

我用 (?s)<TD><SPAN class=STYLE5>(.*?)<TD><SPAN class=STYLE5>|(?s)<TD><SPAN class=STYLE5>(.*?)一共有
这个公式提取只能提取出两个 ,迷惑了

afan 发表于 2013-8-25 11:34:01

(?si)<TD><S.+?(?=<TD><S|<P )

nangua111111 发表于 2013-8-25 11:46:40

回复 2# afan 谢谢

谢谢 ,afan。很高深。{:face (270):}

lpxx 发表于 2013-8-25 12:53:12

本帖最后由 lpxx 于 2013-8-25 12:55 编辑

回复 2# afan
A版,为什么我写的正则总是比你的长很多?他这个问题在群里提过,我思考了过了。我写的太长了。

afan 发表于 2013-8-25 13:03:25

回复 4# lpxx


    呵呵 长点好… {:face (303):}
我习惯取唯一特征,比如 </SPAN> ,如果没有其它的 </S... ,我就只取 </S
如果有多段长表达式,有很长一部分是相同的,那就只写一次相同部分,再用 | 来区别不同处

nangua111111 发表于 2013-8-25 16:12:58

先后次序选择,看来也是博大精深{:face (396):}

gto250 发表于 2013-8-25 20:57:28


afan 发表于 2013-8-25 11:34 http://www.autoitx.com/images/common/back.gif


    P版能解释一下这个正则吗?

afan 发表于 2013-8-25 21:05:19

回复 7# gto250


   
(?si) :表示不区分大小+“.”也可以匹配换行符

<TD><S.+? :需要匹配“<TD><S”开头的字符串,?可以懒惰到符合匹配后面表达式的最少字符串
(?=<TD><S|<P ) :给前面的表达式增加的辅助条件,后面要为“<TD><S”或“<P ”

lsb968 发表于 2013-8-25 21:44:35

本帖最后由 lsb968 于 2013-8-25 22:01 编辑

好好研究研究……
回复 8# afan
(?=<TD><S|<P )是断言匹配??

nangua111111 发表于 2013-8-25 23:19:16

欢迎大家把其他方式都贴上来。

hz_xwh 发表于 2013-8-26 08:35:33

好深奥,纯帮顶

xlj310 发表于 2013-8-27 13:25:39

表示能看懂afan,不过afan的正则确实是登峰造极~

1361739590 发表于 2013-8-28 15:49:19

回复 4# lpxx


    哪个群求加入

tutou9997 发表于 2013-8-28 16:05:58

纯支持 正则不太懂
页: [1]
查看完整版本: 【已解决】正则提取问题?