使用正则表达式的澳大利亚区域需要的地址解析和验证技术

问题描述

|| 我们需要对以下字段进行验证 街道地址/营业地址 需要注意的条件如下 邮局信箱,私人包不能用作地址。地址字段不应以以下内容开头: 注意:^ =空格
G^P^O    
GPO^    
G.P.O    
GPO.    
G.P.O. Box

P^O    
P.O    
PO^    
PO.    
P.O.    
P.O.B    
POBOX    
POST BOX    
POST OFFICE BOX    
P / O Box    
P/O Box    
P O Box    
P.O. Box

BOX^    
BOX.    
Private Bag^    
Private Bag.    
Locked Bag
此列表需要可配置,以允许以后包含其他规则。无需验证大小写 您能建议我使用Java或Java更好地实现这种验证吗? 如果我使用Java,建议使用Regex类 如果是Javascript,我应该怎么做 请分享您的示例代码(如果有) 我正在检查我们是否使用正则表达式会这样做吗? ps:由于此项目无法使用任何google或yahoo api或任何其他付费的API来解析街道地址。     

解决方法

        在那种情况下,我不会使用regexp。取而代之的是,我将所有\“停用词\”放在文件中,将其读入一个集合并使用循环进行验证:
public static boolean isValid(String address) {
  Set<String> stopWords = getSet();  // some magic to get the loaded set
  for (String stopWord:stopWords) {
    if (address.trim().toLowerCase().startsWith(stopWord.toLowerCase())) {
       return false;
    }
  }
  return true;
}
最大的好处是:停用词保存在文件中,不会编译成任何下周及以后没人能理解的正则表达式。     ,        不是我自己的正则表达式专家,所以我的回答将是很长的路要走。 您可以在正则表达式中包括可能值的列表:
/(G\\sP\\sO)|(GPO\\s)|(G\\.P\\.O)|(G\\.P\\.O\\.\\sBox)| .... and so one
我认为这不是解决问题的最有效方法,但仍然可以使用。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...