-3

私は次のような文字列を持っています

8.123.351 (ここにいくつかのテキスト)

正規表現を使用しました

/([0-9,]+(\.[0-9]{2,})+(\.[0-9]{2,})?)/

文字列から値「8.123.351」を取得します。上記の文字列で機能しています。

ただし、「。」のない文字列の場合は機能しません。たとえば、「179(ここにテキストがあります)」などです。この値にも一致するように正規表現を変更しましたが、成功しませんでした。

だから、誰でも次のような文字列から数値を取得するための正規表現を提案できますか?

  1. 8.123.351 (ここにいくつかのテキスト)
  2. 179 (ここにいくつかのテキスト)
  3. 179.123 (ここにいくつかのテキスト)
  4. 179.1 (ここにいくつかのテキスト)
4

2 に答える 2

1

あなたはあまり明確ではありません。パターンを作成するためにいくつかの仮定を行います。

  1. 数字は文字列の先頭にあります
  2. ドットの前に、少なくとも 1 桁、最大 3 桁の数字があります

今、私たちはあなたの表現を作成します

  1. 行頭の 1 ~ 3 桁を一致させる

    /^\d{1,3}/
    
  2. オプションで (?グループの後に) ドットとさらに 1 ~ 3 桁の数字があります

    /^\d{1,3}(?:\.\d{1,3})?/
    
  3. このドットの部分は 0 回以上繰り返すことができます (?を aに置き換えます*) 。

    /^\d{1,3}(?:\.\d{1,3})*/
    

    ここでRegexrを参照してください

正規表現の基本を読みたい場合は、それに関するブログ投稿を書きました

于 2012-05-10T11:39:05.783 に答える
1
/([0-9]+[,\.]?)+/ 

すべての文字列に一致

ところで... +1 つ以上の一致があるため、正規表現には一致するポイントが必要です。*は 0 以上で?0 または 1 です

于 2012-05-10T11:24:10.473 に答える