2016-05-27 16 views
1

なぜ私のregexも手紙を受け入れますか?例えば: - それは(ディスプレイエラーメッセージ)動作 私の正規表現が文字を受け入れるのはなぜですか?^[0-9 - + _]

  • 123ABC -

    • test123動作していない(エラーメッセージを表示しない)

      test = forms.RegexField(
          max_length=15, 
          regex=r'^[0-9\-\+_ ]', 
          error_message=_(u"Only digits0-9 and +, _, -"), 
          required=True, 
          label=_(u'Test')) 
      

    は0からなる文字列を受け入れるべきです-9とこれらの特別な文字:+、_、 - 、 ""(スペース)

  • +0

    正規表現は、あなたの問題であると思ういけない、私は F = re.findall使用して正規表現を実行しました( '^ [0-9 \ - \ + _]'、 "test123") をし、それが受け入れません文字列 – glls

    +0

    なぜこれは 'regex'タグが付いていないのですか? –

    答えて

    4

    あなたの正規表現は文字列の開始をテストしています - 実際には最初のch文字列のアトラクタ。 [0-9\-\+_ ]あなたは、文字列全体に必要なすべてのであれば、最後に+$スティック:

    regex=r'^[0-9\-\+_ ]+$' 
    

    これは、文字列全体が、仕上げに始めることを言う、唯一の角括弧内の文字を含むように許可されています。

    +0

    FYI:空の文字列を許可するには、 '*'の代わりに '*'の代わりに '\ Z 'を使うことができます:' regex = r'^[0-9 \ - \ + _] * $ '末尾に改行が入っていないことを確認してください:))。また、角括弧の中に '+'をエスケープする必要はありません。 –

    関連する問題