-2

我的输入段落包含一条以道路或大道结尾的道路(例如墨尔本路或尼甘布金布拉皮蒂亚路)。任何人都可以建议我一种模式类型来从段落中提取道路名称吗?

4

2 回答 2

1

如果你String总是以 结尾' Road',你可以删除最后 5 个字符。-

String res = road.substring(0, road.length - 5);
于 2013-10-13T10:50:43.460 回答
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);
}
于 2013-10-13T11:28:37.813 回答