73303


Google App Script によって金額の含まれたテキストから金額の数字のみを抽出したい。  
そのために正規表現を使っているのですが、書き方が冗長になってしまいます。  
もっと良いコードはありませんか？

[code]

    function myFunction() {
      text = "これはテストメールです\nご利用金額：1,234円です\nまた利用してください"
      console.log(text.match(/ご利用金額：[\d,]+円/g).toString().match(/[\d,]+/g)) // テキストから金額のみを抽出
    }
    
[/code]


CC BY-SA 4.0
2021-01-14T12:59:33.170
73299
2021-01-15T02:38:54.270
2021-01-15T02:38:54.270
3060
43413
question
javascript 正規表現 google-apps-script
正規表現でテキストから金額を表す数字部分のみを取得したい


正規表現で取り出したい部分を `()` で括って **グループ化** を行い、 **後方参照** することでマッチした部分のみを取り出す方法が考えられます。

[code]

    function myFunction() {
      text = "これはテストメールです\nご利用金額：1,234円です\nまた利用してください"
      price = text.match(/ご利用金額：([\d,]+)円/)
      console.log(price[1])
    }
    
[/code]

パターンに `()` のペアが複数含まれる場合には、`price[1]`, `price[2]` のように配列の要素として順にそれぞれ取り出す形になります。

# 私自身 JavaScript はあまり詳しくないので、もっとスマートな書き方があるかもしれません。


CC BY-SA 4.0
2021-01-14T16:48:53.767
73303
2021-01-14T16:48:53.767
3060
73299
answer