2012-02-16 3 views
0

@ "(? I) \ b (?: P (?: Ost)?.? \ S * o0?.? \ S * b (?: [O0] x)? | B [ о0] х)»PO Box RegEx Issue

у меня есть выше RegEx поймать PO Box, однако это не ловя один сценарий, который я хотел:

PO 123 (или любой заданный набор чисел после PO) PO 756 PO 987 - и т. Д.

Могу ли я получить помощь относительно того, где проблема соответствия? Похоже, что это только соответствие «PO», если оно содержит «B» или «BOX» после него.

Я рассмотрел множество других примеров на этом сайте - и никто, кажется, не поймает этот конкретный сценарий.

+0

Если ваши данные аккуратно разделены (например, в обычные поля адреса), вы можете искать '^ р \. o' в разделенной копии строки и разделить на пробел, чтобы получить номер в конце. – dtanders

ответ

0

насчет сделать б опциональный ?, просто добавьте ? после b как этот

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