2017-05-09 8 views
-1

10桁または12桁の数字の組み合わせに一致する正規表現を作成しようとしました。以下のような:10桁または12桁の数字に一致する正規表現

1234567890 - 真
123456789012 - 真
12345678901 - 偽
123456-偽

1234567890123-偽

のみ一致し、10または12桁の数字。 私はこれを試しました:

"^[0-9]{10}|[0-9]{12}$" 

答えて

6

あなたは近くです!

これはあなたが探している正規表現です:^(\d{10}|\d{12})$。数字(\d)をチェックします。残りは括弧を除いて多かれ少なかれあなたのコードです。各グループをキャプチャします。もしあなたがそれなしで仕事をしたいのなら、それらを緩めることができます!

See it in action here

+0

ちょうど私の答えに追加する:[regex101.com](のhttp:// regex101.com)正規表現を学ぶための素晴らしい方法です。あなたがそれを必要とするたびに、ちょうど周りのフィドルを見て、右下の伝説を見てください。私は正規表現で吸うのに使用されましたが、そのサイトは試行錯誤だけで多くのことを教えてくれました! –

1

あなたの正規表現は、文字列の末尾に文字列の先頭に10桁(任意の文字で、よりその後許可)、または12桁の数字と一致するいずれか。あなたの正規表現の作品を作るための一つのオプションは次のとおりです。

"^[0-9]{10}$|^[0-9]{12}$" 

それはパターンのために、生の文字列を使用することをお勧めしますが、:

r'^[0-9]{10}$|^[0-9]{12}$' 
関連する問題