我有正則表達式^\d{5}$|^\d{5}-\d{4}*$"
它檢查了美國郵政編碼。 但我需要檢查「zip, zip, zip
」該怎麼做?如何設置重複正則表達式?
我想這^(\d{5}$|^\d{5}-\d{4},)*$
但它不能正常工作
我有正則表達式^\d{5}$|^\d{5}-\d{4}*$"
它檢查了美國郵政編碼。 但我需要檢查「zip, zip, zip
」該怎麼做?如何設置重複正則表達式?
我想這^(\d{5}$|^\d{5}-\d{4},)*$
但它不能正常工作
嘗試
((^|,)(\d{5}|\d{5}-\d{4}))*$
每場比賽必須由(^|,)
由字符串的開頭或,
(逗號分隔)
注意前面,這樣你在.NET中不應該使用\d
,因爲٠١٢٣٤
是\d
! (在.NET \d
包括非ASCII的Unicode數字)。 [0-9]
通常更好。
你看起來需要的表達式是:
^\d{5}(|-\d{4})(,\d{5}(|-\d{4}))*$
你試圖寫入的一個是:
^(\d{5}|\d{5}-\d{4},)*$
但會要求每個ZIP都有一個尾隨逗號,這是最後一個不會有的。
打破給出了答案,
\d{5}(|-\d{4})
是你原來的變種,而是簡單地使-1234可選。(,\d{5}(|-\d{4}))*
是第一個以逗號開頭的正則表達式,允許零次或多次。我會用這個速度:
^\d{5}(?:-\d{4})?(?:,\s*\d{5}(?:-\d{4})?)*$
擴大
^
\d{5}
(?: - \d{4})?
(?:
, \s* \d{5}
(?: - \d{4})?
)*
$
這對於速度/靈活性:
^\s*\d{5}(?:\s*-\s*\d{4})?(?:\s*,\s*\d{5}(?:\s*-\s*\d{4})?)*\s*$
擴大
^
\s*
\d{5}
(?: \s* - \s* \d{4})?
(?:
\s* , \s* \d{5}
(?: \s* - \s* \d{4})?
)*
\s*
$
它一直出現三次,還是一個未定義的數字? –
未定義編號 – Mediator
如果您有重複,請勿在重複塊中放置'$'。 – dasblinkenlight