2013-10-13 3 views
-2

мой входной пункт состоит из дороги, которая заканчивается дорогой или проспектом (например, дорога Мельбурн или дорога Негомбо Кимбулапития). Может ли кто-нибудь предложить мне тип шаблона для извлечения имени дороги из абзаца?Java регулярное выражение, чтобы найти текст

+0

Что представляет собой название дороги? – Bohemian

+0

в вашем вопросе отсутствует слово «с», или ваша пунктуация неверна. –

+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) - слова road или avenue в конце строки $ и - только для обрезки - любые пробелы \\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); 
} 
Смежные вопросы