住所文字列から通りの名前を取得するために使用したい次のコードがあります。
「77 ELM ST」のアドレスの場合、以下のコードは正しい「ELM」を示します。
「115 GEORGE APPLETON FOX ST」の住所の場合、コードは「APPLETON」を示します。期待される結果は「GEORGE APPLETON FOX」になるはずです。
例えば:
private static String ADDRESS_PATTERN = "^\\d*\\s*(\\w+\\s*)*ST$";
public String parseStreet(String address) {
Pattern addressPattern = Pattern.compile(ADDRESS_PATTERN);
Matcher matcher = addressPattern.matcher(address);
boolean found = matcher.find();
return found ? matcher.group(1).trim() : null;
}
私は何を間違っていますか?