私はこれらのフォーマットのいずれかの文字列にマッチする正規表現が必要:AAAA00000000-0000と一致する正規表現パターンを書くには?
- "AAAA00000000"
- "AAAA00000000-0000"
- "0000000000"
私が持っています第1パターンと第3パターンの権利、これは私が思いついたものです
私はそれを得ることができません第2のパターンを含む。ある
私はこれらのフォーマットのいずれかの文字列にマッチする正規表現が必要:AAAA00000000-0000と一致する正規表現パターンを書くには?
私が持っています第1パターンと第3パターンの権利、これは私が思いついたものです
私はそれを得ることができません第2のパターンを含む。ある
^[a-zA-Z]{4}[0-9]{8}(-[0-9]{4})?$
、XXXXnnnnnnnn
と任意-nnnn
部分。
XXXXnnnnnnnn
XXXXnnnnnnnn-nnnn
このグループがマッチ全体(キャプチャグループ0)に等しいようにあなたが最も外側の括弧を省略することができます。
EDIT
更新あまりにも、nnnnnnnnnn
一致します
^[0-9]{10}|[a-zA-Z]{4}[0-9]{8}(-[0-9]{4})?$
マッチ:
nnnnnnnnnn
XXXXnnnnnnnn
XXXXnnnnnnnn-nnnn
EDIT#2
、これは私が調理することができるよ最も読みやすい/最短です。すぐ上のよう
^[0-9]{10}|[a-zA-Z]{4}[0-9]{8}(-[0-9]{4}|)$
同じ特性を。
XXXXnnnnnnnn-nnnnおよびnnnnnnnnnnパターンで動作し、XXXXnnnnnnnnで失敗します。 – dom
@dombenoitどの言語を使用していますか。私はhttp://www.regexplanet.com/simple/index.htmlでテストしました。* I * intendとして動作します。 – jensgram
@dombenoit '? '演算子がサポートされるべきではないと信じるのは難しいですが、' {0,1} 'で置き換えてみてください...' ^([0-9] {10} | [a-zA-Z] {4} [0-9] {8} - [0-9] {4} | [a-zA-Z] {4} [0-9] {8})$ '仕事? – jensgram
あなたが不足している固定$
? " - " 第二のフォーマットのを...
^[a-zA-Z]{4}([0-9]{8}|[0-9]{8}\-[0-9]{4})$
「[0-9] {10}」はどこから来たのですか? '0000000000'もマッチするはずです(先行文字なし)? – jensgram
はい、アップデート – dom
を参照してください。確認: – jensgram