我從正則表達式庫有以下正則表達式,做了一個很好的工作來捕捉一些郵政信箱變化。它不會做的唯一的事情是要匹配的尾部位數:郵政信箱正則表達式幫助匹配尾數
郵政信箱123
任何人都可以請幫助修改此正則表達式也匹配結尾數字?
\b[P|p]?(OST|ost)?\.?\s*[O|o|0]?(ffice|FFICE)?\.?\s*[B|b][O|o|0]?[X|x]?\.?\s+[#]?(\d+)\b
謝謝。
我從正則表達式庫有以下正則表達式,做了一個很好的工作來捕捉一些郵政信箱變化。它不會做的唯一的事情是要匹配的尾部位數:郵政信箱正則表達式幫助匹配尾數
郵政信箱123
任何人都可以請幫助修改此正則表達式也匹配結尾數字?
\b[P|p]?(OST|ost)?\.?\s*[O|o|0]?(ffice|FFICE)?\.?\s*[B|b][O|o|0]?[X|x]?\.?\s+[#]?(\d+)\b
謝謝。
假設「郵政信箱123」中的尾部數字是「123」,則正則表達式確實與匹配。它甚至捕獲了反向引用3的編號。
正則表達式中有大量的缺陷。例如,它匹配OST|||| 0
。
我可以建議我自己的P.O. Box正則表達式?
^(?:Post (?:Office)?|P[. ]?O\.?)?Box #?([0-9]+)
啓用選項,以使在換行符(通常,/m
)^
和$
比賽,並啓用不區分大小寫的選項(通常,/i
)。不要啓用自由間隔選項(通常爲/x
)。
下面是字符串的一些例子它匹配:
尾隨數字捕獲後向引用1
\d+
=一個或多個數字,你在那裏。使用http://regexpal.com/,這是一個救生員。我嘗試了郵政信箱2334328789791297,並採取了它,以及一些其他變化。你的代碼看起來很好(簡短一眼)。
我從上面@ slevithan的回答工作,並增加了一些改進,而被拒絕作爲編輯:
(^|(?:post(al)? *(?:office *)?|p[. ]*o\.? *))box *#? *(\w+)
除了匹配上述情況,它將允許更多的空間之間,或缺乏空格和post/po的短和完整排列實達。字母也被允許用於盒子標識符。警告:確保在模式上啓用多行和不區分大小寫的模式。
我創建以處理郵政信箱驗證將採取寶匣的任意組合的護理,也將採取尾隨數字,字符和數字護理模式。模式模式= Pattern.compile(「([P]?(OST | 0ST)?\ s * [.-]?\ s * [O | 0]?(FFICE)?\ s * [.- ] \ S * [B] [0 | 0] [X] \ S *)*「)?。
它對我來說工作得很好,我用很多組合對它進行了測試。
如果您發現任何問題,請讓我知道。
注意:如果您只需要使用PO bOx而不是尾隨序列,那麼只需從末尾刪除*,然後解決該目的。我假設郵政信箱的大寫。
你是什麼意思的「尾隨數字」? – 2012-05-29 18:44:04