2012-05-03 1 views
17

適切な正規表現マッチングを支援してください。任意の2文字とそれに続く6つの整数の任意の組み合わせ。RegExパターン任意の2文字の後に6つの数字を続けます

ここ
[a-zA-Z]{2}[0-9]{6} 

は、式のブレークダウンです:

These would be valid: 
RJ123456 
PY654321 
DD321234 

These would not 
DDD12345 
12DDD123 
+0

「ABC1234567」はどうですか?それが起こるかもしれませんか? – Phrogz

+0

2文字以上または6文字以上の場合はありません。 – Fergus

+3

「整数」は常に西洋アラビア数字「0-9」ですか、それとも[他の数字]ですか(http://en.wikipedia.org/wiki/Numerical_digit#Numerals_in_most_popular_systems)? – Phrogz

答えて

55

[a-zA-Z]{2}\d{6}

[a-zA-Z]{2} 2つの文字 \d{6}を意味だけ大文字にしたい場合は、その後、6桁

を意味します

[A-Z]{2}\d{6}

+0

はうまくいきます。 – Fergus

+0

^で始まるのを忘れてしまいました。それ以外の場合は、2文字以上ある場合は部分的に一致します。 2アルファと6桁の[[:alpha:]] {2} [[:digit:]] {6}を見つけるには、[:alpha:]の代わりに –

16

あなたはこのような何かを試みることができる

[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}$ 

これは、被写体全体が一致するようにします。私は被験者の前後に何もない。被写体の各側にword boundaryがある保証

又は

\b[a-zA-Z]{2}[0-9]{6}\b 

@Phrogzで指摘されているように、[0-9]\dのように置き換えれば、より簡潔に表現することができます。

[a-zA-Z]{2}\d{6} 
+0

@Phrogz haha​​、それは好みの問題だと思いますが、私はたいてい '\ d'を使いますが、今日は少し違っていました。私はもう少し努力し、あなたのためにそれを更新します。 – Robbie

+0

+1徹底的で賢明であるために) – Phrogz

+0

これは本当に助けになりました。両方のRegExは働いています。ありがとうございます – Fergus

5

私は正規表現が何であるかに依存しますあなたが使っている言語ですが、非公式には、それは:

あなたは次のようになり、有限の繰り返しを可能にする正規表現言語、使用している場合 [:alpha:] = [a-zA-Z][:digit:] = [0-9]

[:alpha:][:alpha:][:digit:][:digit:][:digit:][:digit:][:digit:][:digit:] 

[:alpha:]{2}[:digit:]{6} 

を正しい構文を使用するとしている特定の言語に依存しますを使用して、それがアイデアです。

+0

[[alpha:]] –

2

あなたの正規表現の風味がそれをサポートしている場合によっては、私が使用する可能性があります:あなたがここで必要

\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 
2

すべてが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]に置き換えます。

関連する問題