例如我有类似的字符串:
#resultStats{opacity:0;top:13px}</style><div id="extabar"><div id="topabar" style="position:relative"><div class="ab_tnav_wrp" id="slim_appbar"><div id="sbfrm_l"><div id="resultStats">About 5,320 results<nobr> (0.13 seconds) </nobr></div></div></div></div><div id="botabar" style="display:none"></div></div><div></div></div><div class="mw" data-jibp="h" data-jiis="uc" id="ucs"></div><div class="mw"><div data-jibp="h" data-jiis="uc" id="akp"></div><div id="rcnt" style="clear:both;position:relative;zoom:1">
我需要从中获取5,320
。这样做<div id="resultStats">(\d+(?:,\d+))<\/div>
。
P.S。
我需要特别从<div id="resultStats">
答案 0 :(得分:3)
使用正则表达式解析html标签是可行的,但不是 推荐用于整体html语言。
如果必须,这是一个简单的例子
<div\s+id\s*=\s*"resultStats"\s*>[^<]*?(\d(?:,?\d)*)[^<]*?<
格式化:
<div \s+ id \s* = \s* "resultStats" \s* >
[^<]*?
( # (1 start)
\d
(?: ,? \d )*
) # (1 end)
[^<]*? <
输出:
** Grp 0 - ( pos 238 , len 42 )
<div id="resultStats">About 5,320 results<
** Grp 1 - ( pos 266 , len 5 )
5,320