2017-06-02 21 views
-1

正規表現-?\d+ [+|-|*|/] -?\d+は、式1 + 3と問題なく一致します。1 + -2は問題ありませんが、一致しない理由はわかりません。1 - 2- charと正しく一致しない理由を説明できますか?私が達成したかった私の正規表現によって算術式の正規表現

オプション
  • - 数字
  • 空白の先頭
  • 文字列で、その後、オプション
  • その後、空白オペレータ - 二stringof桁
+1

' - 'をエスケープしますか? – t0mm13b

答えて

5

-は、文字クラスの途中でエスケープされているため、範囲が作成されます。エスケープしたり、文字クラスの先頭または末尾に移動することができます。あなたはまた、私が推測するだろう|を必要としません。

||の間の範囲は現在実際には意味をなさないものです。また、文字クラスの代わりにグループ化を使うこともできます。彼らは文字クラス外の数量があるため、このアプローチで

(\+|-|\*|/) 

+*必要

エスケープします。

+0

あなたのおかげで、私はそれを動作させることができました、ありがとう。 – Yoda

+0

あなたの答えはあなたが+1に値する私の答えよりもはっきりしていると思います –