2013-10-13 44 views
-2

我的輸入段落包含以道路或大街(例如墨爾本路或尼甘布金布拉皮蒂耶路)結尾的路。任何人都可以建議我使用模式類型來從段落中提取道路名稱嗎?Java正則表達式查找文本

+0

什麼構成了道路名稱? – Bohemian

+0

在「with」之後,您的問題中缺少一個單詞,或者您的標點符號錯誤。 –

+0

它是一個房子的描述性位置,從那裏我只需要提取道路名稱。 – Burusothman

回答

1

如果您String總是' Road'結束,你可以只取出最後5個characters.-

String res = road.substring(0, road.length - 5); 
+0

我的實際段落不僅包含這條道路名稱。它也包括其他東西(例如: - 比亞加馬路300米,克拉尼亞寺2公里,水世界500米)。 – Burusothman

+0

這個確實是一個完全不同的場景。我很害怕找不到匹配的圖案。 – ssantos

0

你可以試試這個正則表達式

"(?i)\\s*(road|avenue)\\s*$" 

它匹配 - 不區分大小寫的情況下(?i) - 的話roadavenue在行尾$和 - 僅用於修剪 - 在它之前和之後的任何空格\\s*

@Test 
public void extractRoadOrAvenueName() { 
    String regex = "(?i)\\s*(road|avenue)\\s*$"; 

    String road = "melbourne road".replaceFirst(regex, ""); 
    Assert.assertEquals("melbourne", road); 

    road = "Negombo Kimbulapitiya Road ".replaceFirst(regex, ""); 
    Assert.assertEquals("Negombo Kimbulapitiya", road); 

    String avenue = "sunset Avenue".replaceFirst(regex, ""); 
    Assert.assertEquals("sunset", avenue); 
}