-3

特定の文字列から小数、小数、および整数値を抽出するには、正規表現が必要です。たとえば、入力は次のようになります。

  • りんご 1/2個
  • 1.5 オレンジ
  • 2.5 オレンジ
  • レモン1個

出力は次のようになります。

  • 1/2
  • 1.5
  • 2.5
  • 1

3 つの異なる正規表現を使用して小数、小数、整数の値を個別に抽出する方法を見つけましたが、1 つの正規表現ですべての可能な数値を抽出する方法がわかりません。

現在、Javascript String オブジェクトの match メソッドを使用しています。

どんな助けでも大歓迎です。

4

4 に答える 4

3

正規表現パターンを使用する

\d+([/.]\d+)?

...これはJavascriptコードにつながります

var n = str.match(/\d+([\/.]\d+)?/g);

このフィドル/デモを確認してください。

于 2012-11-02T23:15:31.523 に答える
1

それでは、あなたの作業用正規表現を提示してみませんか?

しかし、ここでは、単純に代替を使用する方法を示します。

\d+(\/\d+|\.\d+)?

これはすでにわずかに最適化されています。3 つの正規表現を . で区切るだけです|

于 2012-11-02T23:08:20.260 に答える
1

この場合の最も簡単な正規表現 (数値が常に文字列の先頭にあると仮定) は次のとおりです。

^\S+

例:

'1/2 apples'.match(/^\S+/) // ["1/2"]
'1 lemon'.match(/^\S+/) // ["1"]
于 2012-11-02T23:09:48.470 に答える
1

すべての文字列が同じ形式 (つまり、amount で始まり、次にスペース、次に text) であることが確実な場合は、正規表現の必要さえありません。

"1/2 apples".split(" ").shift();   // gives "1/2"
于 2012-11-02T23:14:27.873 に答える