有人可以告訴我如何匹配4位數字或在正則表達式中什麼都沒有?我一直在使用RegexBuddy,到目前爲止我已經提出了這個問題,但幫助文本是說'或者匹配下面的正則表達式編號2 - 如果這個匹配嘗試失敗,則匹配嘗試失敗,如果匹配'管。正則表達式,數字或空
我想要兩者中的任何一個提供積極的匹配。
^\d{4}|$
有人可以告訴我如何匹配4位數字或在正則表達式中什麼都沒有?我一直在使用RegexBuddy,到目前爲止我已經提出了這個問題,但幫助文本是說'或者匹配下面的正則表達式編號2 - 如果這個匹配嘗試失敗,則匹配嘗試失敗,如果匹配'管。正則表達式,數字或空
我想要兩者中的任何一個提供積極的匹配。
^\d{4}|$
無論是4位或無:
^(?:\d{4}|)$
這是最接近你試圖做。
我會去一個稍微短下列操作之一:
^(?:\d{4})?$
^\d{4}|$
這正則表達式指:
^\d{4}
OR $
第只會匹配任何以4位數字開頭的字符串報告匹配的所有內容(它匹配字符串的末尾,並且由於沒有指定字符,它將匹配所有字符串的末尾)。
當你使用一組,你得到:
無論^(?:\d{4})$
或^(?:)$
(注意,OR運算的「限制」改變),然後將其等同於或者^\d{4}$
或^$
可能值得解釋的是'^ \ d {4} | $'會匹配'1234a',因爲$不包含在第一個匹配 –
@BobVale我可能還會添加'^ \ d {4} | $'作爲一個整體將匹配任何東西,因爲'$':) – Jerry
我認爲你的方法是合理的。你需要保持運算符的優先考慮,但並請使用
^(\d{4}|)$
或
^\d{4}$|^$
如果需要OR
^(\d{4})?$
上述正則表達式是正確的,我不認爲。當然^意味着開始行和$意味着行結束,我不知道是否在你的情況下,將需要。但是'\ d {4} |'確實意味着「4位數或者什麼都不是」。 –
實際上匹配是否以4位數開始或什麼都不是。所以1234a會匹配 –