我在这个网站上四处寻找一个好的 PO Box 正则表达式,但没有找到任何我喜欢或始终如一地工作的东西,所以我试着自己制作……我对此感觉很好,但我敢肯定SO上的好心人可以在其中戳一些洞:)那么...您对此有什么问题,您能想到哪些误报/误报可以解决?
我可以看到的一个警告是 PO Box 模式必须位于字符串的开头,但它还有什么问题?
public bool AddressContainsPOB(string Addr)
{
string input = Addr.Trim().ToLower();
bool Result = false;
Regex regexObj1 = new Regex(@"^p(ost){0,1}(\.){0,1}(\s){0,2}o(ffice){0,1}(\.){0,1}((\s){1}|b{1}|[1-9]{1})");
Regex regexObj2 = new Regex(@"^pob((\s){1}|[0-9]{1})");
Regex regexObj3 = new Regex(@"^box((\s){1}|[0-9]{1})");
Match match1 = regexObj1.Match(input);
if (match1.Success)
{ Result = true; }
Match match2 = regexObj2.Match(input);
if (match2.Success)
{ Result = true; }
Match match3 = regexObj3.Match(input);
if (match3.Success)
{ Result = true; }
return Result;
}