using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office (box|bin)|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)";
string input = @"Valid:
P. O. Box : Valid
P.O.Box : Valid
Post Box : Valid
Post Office Box : Valid
P.O.B : Valid
P.O.B. : Valid
POB : Valid
Post Office Bin : Valid
100,, P O Box Des Moines : Valid
P O Box DesMoines1000 : Valid
P O Box Des Moines 1000 : Valid
Post Office Box : Valid
Post Office Box : Valid
Post Box 123 : Valid
PO
P.O.
P.B.
Invalid:
POTTER STREET"", ""Campbell Dr.
Post Office : Invalid
Box : Invalid
Bin : Invalid
Post : Invalid
Postal Code : Invalid
Portsmouth
Campbell
Raspberry
Polonium
Polar beer.
12 Box
HC73 P.O. Box 217
P O Box 125
P. O. Box
P.O. Box 123
P.O. Box
p-o box
Po Box
POBOX123
p box
Post Box 123
Post Office Box 123
Post Office Box
Box 123
Box-122
Box122
box #123
box 122
box 123
P.O.B 123
P.O.B. 123
P.O.B.
POB 123
POB
Post 123
P.O 123
The Postal Road
Box Hill
123 Some Street
Controller's Office
pollo St.
123 box canyon rd
777 Post Oak Blvd
123 box ";
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx