質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

934閲覧

GASでGmailメール本文中の取得したい文字列が複数個ある場合の取得方法

Gould540216

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/01/12 14:43

こんばんわ、今、GASを使ってGmailのスレッドのメール本文から、商品コードのみ抽出しようとしています。
商品コードはメール本文中に複数個あり、すべて「e-」と「)」の間にあります。
メール本文の一番上の商品コードは取得することができたのですが、本文中の全ての商品コードを取得できません。
以下のようなコードで試しているのですが、解決策はございますでしょうか?
お答えいただけると非常にありがたいです。

function myFunction() {
// 検索条件に該当するスレッド一覧を取得
var threads = GmailApp.search('label:楽天');

// スレッドを一つずつ取り出す
threads.forEach(function(thread) {

// スレッド内のメール一覧を取得 var messages = thread.getMessages(); // 商品コードを取り出す const pcode=[]; for (let i=1; i<=5; i++){ pcode[i] = plainBody.match(/e-(.*)\)/); } // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('注文'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(1, 2).setValue(company[1]); sheet.getRange(2, 2).setValue(company[2]); sheet.getRange(3, 2).setValue(company[3]); });

});
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daltonya

2022/01/18 23:27

正規表現ですので、最後にgをつけるのでは解決しませんでしたか?
guest

回答1

0

ベストアンサー

daltonya 2022/01/19 08:27
正規表現ですので、最後にgをつけるのでは解決しませんでしたか?

既に指摘されていますが、グローバルフラグ(g)で問題は解決しませんか?

js

1const pcode = plainBody.match(/e-(.*)\)/g);

投稿2022/01/20 14:41

k08045kk

総合スコア384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gould540216

2022/01/23 12:54

お教えいただき、ありがとうございます。 グローバルフラグ(g)をつけて、解決できました。 これで配列の中に、マッチしたすべての値が入るのですね。 助かりました、感謝です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問