3
如果我有一堆文本,讓我們說HTML,但它不一定是。如何在java中使用正則表達式提取多行?
</TD>
<TD CLASS='statusEven'><TABLE BORDER=0 WIDTH='100%' CELLSPACING=0 CELLPADDING=0><TR><TD ALIGN=LEFT><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR>
<TD ALIGN=LEFT valign=center CLASS='statusEven'><A HREF='extinfo.cgi? type=2&host=localhost&service=Current+Load'>Current Load</A></TD></TR>
</TABLE>
</TD>
<TD ALIGN=RIGHT CLASS='statusEven'>
<TABLE BORDER=0 cellspacing=0 cellpadding=0>
<TR>
</TR>
</TABLE>
</TD>
</TR></TABLE></TD>
<TD CLASS='statusOK'>OK</TD>
<TD CLASS='statusEven' nowrap>08-04-2011 22:07:00</TD>
<TD CLASS='statusEven' nowrap>28d 13h 18m 11s</TD>
<TD CLASS='statusEven'>1/1</TD>
<TD CLASS='statusEven' valign='center'>OK - load average: 0.01, 0.04, 0.05 </TD>
,我想搶到2個標記之間的一切,其結果很可能是多行,我會怎麼做呢?
這裏是我到目前爲止....
Pattern p = Pattern.compile("extinfo(.*)load average");
Matcher m = p.matcher(this.resultHTML);
if(m.find())
{
return m.group(1);
}
確定很酷。我如何阻止它被貪婪?模式p = Pattern.compile(「(?s)
我編輯了正則表達式而不是貪婪 - 只需添加'?' - 見答案 – Bohemian
您也可以使用'Pattern.DOTALL'開關作爲compile的第二個參數。我不知道你可以在模式本身指定開關;感謝那。 –
相關問題