私はこのサイトで良い PO Box 正規表現を探しましたが、気に入ったものや一貫して動作するものは見つかりませんでした。 SOの親切な人々はそれにいくつかの穴をあけることができます:)それで...これでどのような問題が見られ、どのような偽陽性/偽陰性が通り抜けると思いますか?
私が見ることができる 1 つの警告は、私書箱パターンが文字列の先頭にある必要があるということですが、他に何が問題なのですか?
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;
}