0

我真的可以使用一些帮助。我有以下两行。

<TD noWrap>Data: <B><SPAN class="TableBody clsBold">4</SPAN></B></TD>
<TD noWrap>Format: <B><SPAN class="TableBody clsBold">9</SPAN>/<SPAN class=TableBody> </SPAN></B></TD>

我需要抓取标签之间的文本(分别为 4 和 9)

我正在使用以下正则表达式语句:

(\s)*(<B>)*<(?<SPAN>\w*)(?:.*)>(?:.*)</\k<SPAN>>

这对于第一行非常有效,如下所示:

Data: (\s)*(<B>)*<(?<SPAN>\w*)(?:.*)>(?:.*)</\k<SPAN>>

但不适用于

Format: (\s)*(<B>)*<(?<SPAN>\w*)(?:.*)>(?:.*)</\k<SPAN>>

因为它在我需要的部分之后抓住了 SPAN,所以我在第 4 组中没有得到 9。

如何使用具有不同前缀的相同正则表达式行获得我需要的东西。

4

1 回答 1

0

我会在正则表达式中准确指定我要查找的内容。话虽这么说,这样的事情就足够了:

<TD noWrap>([A-Za-z]+:)\s*<B><SPAN class="TableBody clsBold">(\d+)</SPAN>

它只使用两个捕获组,所以你应该得到 match ("Data", "4"),并且("Format", "9")

于 2012-06-02T23:28:20.253 回答