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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

1回答

1999閲覧

GAS メールに記載されているURLを正規表現を使用して取得したい。

TsubasaKubo

総合スコア8

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

2クリップ

投稿2019/03/30 13:19

編集2022/01/12 10:55

前提・実現したいこと

GASを利用し、毎日膨大な量を受信するワークフローの中から該当するものだけを精査し、スプレッドシートに転記したいと考えています。
受信日時、件名、正規表現を使用して、ワークフローの詳細画面にジャンプするURLのみを取得したい。

発生している問題・エラーメッセージ

URLらしきものを取得はしているが、エンコードの問題?表記が正しくない現象が発生しており、 解決策が全く検討もつかない。

該当のソースコード

function onOpen() {
SpreadsheetApp.getUi()
.createMenu('ジョブカンW/F') // メニューの追加
.addItem('承認依頼', 'getGmail') // 項目の追加
.addItem('雇用形態変更', 'anotherGetGmail')
.addItem('申請が共有されました','otherGetGmail')
.addItem('閲覧可能な申請が新規登録されました','newRegistGmail')
.addToUi();
}

function getGmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var threads = GmailApp.search('from:jobcanwf@donuts.ne.jp subject:"承認依頼"');
for(var i=0; i<threads.length; i++){
var thread = threads[i];
var mails = thread.getMessages();
for(var j=0; j<mails.length; j++){
var mail = mails[j];
var body = mail.getBody();
var regEx = /https.*?/g;
Logger.log(regEx);
sheet.appendRow([mail.getDate(), mail.getSubject(),body.match(regEx)]);
}
}
}

試したこと

オリジナルの変数を作った上で正規表現を使ったり、シート側の表示形式を変えて見たりしたが、自力で解決する事が出来なかった。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

質問には最低どこがどうなっておかしいかを示さないと回答のしようがないです。

エンコードの問題?表記が正しくない

と思っているのは質問者様だけで、ブラウザは正しく理解できるのかもしれません。

例えばグーグルで「ジョブカン」を検索したとき、アドレスバーには「google.com/search?q=ジョブカン」となりますが、コピペすると↓なります。
https://www.google.com/search?q=%E3%82%B8%E3%83%A7%E3%83%96%E3%82%AB%E3%83%B3

また正規表現はhttp以降の任意の文字を取得しているので、メールのほうで改行されていて、urlのパラメータが取れていない、メールではaタグなどになっていて「"」のような不要な文字まで取れている、など考えられる事象が多すぎて、回答が絞りきれません。

与えられたコードではなく、むしろデータ(ジョブカンWFなるもので送信されるメールに記載される内容)に依存する問題を、コードだけ与えて解決しようとする試みは労多くして実り少ないです。

投稿2019/03/30 17:38

papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問