2017-03-02 9 views
0

whats up?グループをキャプチャしている正規表現の数量化器

私は動作する正規表現を取得しようとしていますが、私はいくつかの "奇妙な"(?)動作に直面しています。

は、私は、次の検証正規表現が必要です。12文字でなければなりません(全くの空白)

  • 数字のみを
  • 10で開始または11

勤務した後この上でしばらくの間、私はこれにこだわっている:

^(10|11)[0-9]{10}$ 

これは要望どおりに動作しているようですが、一見すると誤解を招くので満足できません。最大12文字でなければなりませんが、最大10文字+ '開始文字'を検証します。

これがなぜ起こっているのか誰かが、より良い解決策または注意を払って説明できますか? 。。

事前のおかげで(:必要に応じて

+0

の間で持つことができることを意味します。あなたは正規表現の文字列がどのように見えるのか気に入らないのですか? – Oneiros

+0

それは私がそれを気に入らないのではなく、実際に12を検証する10文字の長さの妥当性検査があり、コードのメンテナンスを誤解しています。 – Ambrosi

+1

問題がある場合は、この '^(?=(10 | 11))[0-9] {12} $' – sln

答えて

1

そのが働いていない
{10}あなたのケースでは、正確に10桁の数字を意味
あなたは誤解を招く部分については{0,10}Matches between 0 and 10 times, as many times as possible, giving back as needed

を使用することができます - その主観数が10または11のいずれかで開始する必要がある場合、それは2桁の長さでなければならないと私は何が必要だと思う別の10桁

+0

お返事ありがとうございます! それは私の悪い、最大文字でエラー 申し訳ありません:それはそう 「12文字の長でなければなりません」しなければならないP は実際には、数量詞のため、この動作は正常ですか? – Ambrosi

+0

はい、私はあなたが "10または11で始まり、12桁の長さ"のようなものを見たいと思っていて、正規表現では "12"を見ていないとあなたが不快になりました。もし@sln – dimamah

0

がFOよりも多くないために許可することができますllowing:

^(10|11)[0-9]{0,10}$ 

これは、それが10または11で開始し、必要に応じて、それが動作するかどうか、私が問題だか理解していない長さは2と12文字

Try it here

関連する問題