我有以下代码,我想用它从地址字符串中捕获街道名称。
对于“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;
}
我做错了什么?
最佳答案
将捕获组放在要捕获的子匹配周围。例如:
"^\\d*\\s*((?:\\w+\\s*)*)ST$"
关于java - 正则表达式解析街道名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18033618/