請協助正確的RegEx匹配。任何2個字母,然後是6個整數的任意組合。RegEx樣式任意兩個字母后跟六個數字
These would be valid:
RJ123456
PY654321
DD321234
These would not
DDD12345
12DDD123
請協助正確的RegEx匹配。任何2個字母,然後是6個整數的任意組合。RegEx樣式任意兩個字母后跟六個數字
These would be valid:
RJ123456
PY654321
DD321234
These would not
DDD12345
12DDD123
[a-zA-Z]{2}\d{6}
[a-zA-Z]{2}
意味着兩個字母 \d{6}
意味着6位
如果你想只大寫字母,則:
[A-Z]{2}\d{6}
效果很好.... – Fergus
你忘記了以^開頭,否則,如果你有兩個以上的字母,它會部分匹配。 –
你可以嘗試這樣的事:
[a-zA-Z]{2}[0-9]{6}
這裏是表達的向下突破:
[a-zA-Z] # Match a single character present in the list below
# A character in the range between 「a」 and 「z」
# A character in the range between 「A」 and 「Z」
{2} # Exactly 2 times
[0-9] # Match a single character in the range between 「0」 and 「9」
{6} # Exactly 6 times
這將在受試者之間是否匹配。如果您需要圍繞主題的邊界,那麼您可以執行以下任一操作:
^[a-zA-Z]{2}[0-9]{6}$
確保整個主題匹配。即主題前後沒有任何內容。
或
\b[a-zA-Z]{2}[0-9]{6}\b
這確保有所述對象的每一側上的word boundary。
正如@Phrogz所指出的那樣,您可以通過將[0-9]
替換爲\d
(與其他答案中的一樣)來使表達更爲簡潔。
[a-zA-Z]{2}\d{6}
我要看什麼是正則表達式你使用的語言,但非正式的,這將是:
[:alpha:][:alpha:][:digit:][:digit:][:digit:][:digit:][:digit:][:digit:]
其中[:alpha:] = [a-zA-Z]
和[:digit:] = [0-9]
如果使用正則表達式語言,使有限的重複,這將是這樣的:
[:alpha:]{2}[:digit:]{6}
正確的語法取決於你的特定語言使用,但這是主意。
[[:alpha:]]而不是[:alpha:]找到2alpha和6位[[:alpha:]] {2} [[:digit:]] {6} –
取決於如果您正則表達式的味道支持的話,我可能會使用:你需要在這裏
\b[A-Z]{2}\d{6}\b # Ensure there are "word boundaries" on either side, or
(?<![A-Z])[A-Z]{2}\d{6}(?!\d) # Ensure there isn't a uppercase letter before
# and that there is not a digit after
一切都可以在this quickstart guide找到。 一個簡單的解決方案將是[A-Za-z][A-Za-z]\d\d\d\d\d\d
或[A-Za-z]{2}\d{6}
。
如果您只想接受大寫字母,請將[A-Za-z]
替換爲[A-Z]
。
那麼「ABC1234567」呢?它可能會發生? – Phrogz
不會有超過兩個字母或6個數字的情況。 – Fergus
「整數」是否總是西方阿拉伯數字「0-9」,或者是否會有[其他數字](http://en.wikipedia.org/wiki/Numerical_digit#Numerals_in_most_popular_systems)? – Phrogz