我想要做一個正則表達式,將比較一個代碼,可能會開始與SE但不必。實例:正則表達式可能會與SE開始
XXXXX
XXXXX
XXX XX
SEXXXXX
SEXXXXX
SEXXX XX
SE XXXXX
SE XXX-XX
SE XXX XX
我至今是:/ ^(發E?)(\ S +)(\ d {3})(\ S | - ? )(\ d {2})$/I;
但問題是它可以只有s或只有e開始。有什麼建議麼?
我想要做一個正則表達式,將比較一個代碼,可能會開始與SE但不必。實例:正則表達式可能會與SE開始
XXXXX
XXXXX
XXX XX
SEXXXXX
SEXXXXX
SEXXX XX
SE XXXXX
SE XXX-XX
SE XXX XX
我至今是:/ ^(發E?)(\ S +)(\ d {3})(\ S | - ? )(\ d {2})$/I;
但問題是它可以只有s或只有e開始。有什麼建議麼?
的s?e?
部分將檢查s
或e
。
嘗試以下操作來代替:
/^(?:se)? ?\d{3}[- ]?\d{2}$/i
我會寫 /^(SE \ s){0,1}(\ d {3})(\ S | - )(\ d {2})$ /我
方式如果我理解你的要求,你看起來很好。 s?e?
部分將允許它開始SE
或只有S
或只有E
,這聽起來像你想要的。但是,除非您試圖將代碼的不同部分分爲捕獲組,否則不需要大多數括號。此外,這看起來不正確:(\s|-?)
我認爲它仍然會工作,如果沒有\s
和-
那裏,但它是一個尷尬的寫作方式。
我認爲這應該很好地工作:
/^s?e?\s?\d{3}[\s-]?\d{2}$/i
如果你不希望它開始只有S
,只有E
,或空格,然後使用此:
/^(se\s?)?\d{3}[\s-]?\d{2}$/i
問題是不是括號,這是(視力說)發E?檢查兩個,這是行不通的。 – MaGi
@MaGi - 我不知道你是否只允許S /只有E.如果你不這樣做,第二種模式就是你所需要的。問題絕對不是括號,這只是偶然的建議。 –
這很好:)謝謝 – MaGi