1

私はこのサイトで良い 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;
}
4

1 に答える 1