2013-10-13 81 views
-1

我tryied轉換從C#代碼片段代碼到Java,但沒有成功。我的疑問是Regex類。正則表達式使用Java

C#代碼

string estado = Regex.Match(pagina, "<td width=\"25\" style=\"padding: 2px\">(.*)</td>").Groups[1].Value; 
estado = "<label>" + estado + "</label>"; 

在這段代碼中,我宣佈了一個名爲estado和一個叫pagina特定字符另一個字符串搜索字符串。

如何在Java中執行此操作Regex

HTML(我簡化了樣品,因爲太大了,所以我把三個點在哪裏並不意味着很多對我來說)

<!DOCTYPE html SYSTEM "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Correios</title> 
... 
<td width="268" style="padding: 2px">Rua Satelite</td> 
<td width="140" style="padding: 2px">Caicara</td> 
<td width="140" style="padding: 2px">Belo Horizonte</td> 
<td width="25" style="padding: 2px">MG</td> 
<td width="65" style="padding: 2px">30280-291</td> 
</tr></table> 
... 

我需要這些<td>標籤,但在Java代碼。

+0

字符串應該是'字符串' –

+0

這是C#代碼,其中'字符串'可以'字符串' –

+1

我注意到你解析HTML與正則表達式,這是[不理想](http://stackoverflow.com /一個/244343分之1732454)。 – darvids0n

回答

1

Java確實有正則表達式。正則表達式的能力由類PatternMatcher提供。您的代碼將變爲:

String estado = Pattern.compile("<td width=\"25\" style=\"padding: 2px\">(.*)</td>").matcher(pagina).group(); 
estado = "<label>" + estado + "</label>"; 

有關更多信息,請參閱java.util.regex的軟件包摘要。

+0

沒有成功,我得到'Exception:java.lang.IllegalStateException:找不到匹配消息:java.lang.IllegalStateException:找不到匹配項'但是我更新了我的問題,我們可以看到存在'​​',我想要 –