邮政信箱地址正则表达式问题

时间:2012-03-12 15:15:10

标签: c# regex

我有这个正则表达式:

@"(?i)\b(?:p(?:ost)?\.?\s*[o0](?:ffice)?\.?\s*b?(?:[o0]x)?|b[o0]x)"

有人可以帮我识别问题并更正此正则表达式来捕捉我需要的场景并让其他人通过吗?

看起来这样可以随时捕捉任何包含'Po'的地址。

例如:

123 Polar Road
165 Super Point Drive
等等......都会失败。

我需要抓住它:

P.O. Box 123
PO Box 123
PO 123
P0B 123
Box 123
Post Office Box 123

看起来当我选择B时,这就发生了。但我需要b是可选的,以捕获PO 123。

2 个答案:

答案 0 :(得分:2)

也许这个?

\b[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\b

答案 1 :(得分:2)

试试这个: @“(?i)\ b(?:P(?:[0o] st |。?)?0O?(?:B(?:。| [0] x)?)?| B [0] x )*([0-9] +)\ b“

应该抓住你列出的所有例子