teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

タイトル修正

2021/06/21 12:48

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- GASの正規表現で取得した文字列から都特定の文字を削除したい
1
+ GASの正規表現で特定の文字以降取得したい
body CHANGED
File without changes

3

修正

2021/06/21 12:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,22 @@
1
- https://tonari-it.com/gas-regexp-replace-new/ を見て正規表現で取得した文字列から特定の文字列を削除しようとています。
1
+ https://tonari-it.com/gas-regexp-replace-new/ をにしています。
2
2
 
3
+ ```
4
+ // やりたいこと
3
- 正規 + replaceで書いてみたら `TypeError: plainBody.match(...).replace is not a function` とエラーが出てします。
5
+ var id = plainBody.match(/ID : (.*)/);
6
+ console.log(id); // ID :92829184129492
7
+ の `ID :`を削除 or `ID :`以降を取得したいです
8
+ ```
4
9
 
10
+ 正規表現 + replaceで書いてみたら `TypeError: plainBody.match(...).replace is not a function` とエラーが出てします。
11
+
12
+ ```
13
+ var companyName = plainBody.match(/会社名 : (.*)/).replace("会社名 : ", "");
14
+ ```
15
+
5
16
  正規表現単体で文字列は取得出来ています。
6
- 例:会社名 : 株式会社テラテイル
17
+ 会社名 : 株式会社テラテイル
7
18
 
19
+
8
20
  ```ここに言語を入力
9
21
  function myFunction() {
10
22
  // 検索条件に該当するスレッド一覧を取得

2

追記

2021/06/21 09:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,20 @@
51
51
  }
52
52
  ```
53
53
 
54
+
55
+ ```
56
+ // gamail
57
+ 件名:【会社名】..問い合わせありがとうございます
58
+ 日時:timestamp
59
+ 本文
60
+ ID : 92829184129492
61
+ 会社名 : 株式会社teratail
62
+ 担当者名 :テラ・テイル
63
+ サービス名 : 有料サービスA
64
+
65
+ テキストテキストテキスト...
66
+ テキストテキストテキスト...
67
+ テキストテキストテキスト...
68
+ ```
69
+
54
70
  特定の文字列削除はreplace以外で行うのでしょうか。

1

追記

2021/06/21 08:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,49 @@
6
6
  例:会社名 : 株式会社テラテイル
7
7
 
8
8
  ```ここに言語を入力
9
+ function myFunction() {
10
+ // 検索条件に該当するスレッド一覧を取得
11
+ var threads = GmailApp.search('subject:【会社名】問い合わせありがとうございます');
12
+
13
+ // スレッドを一つずつ取り出す
14
+ threads.forEach(function(thread) {
15
+
16
+ // スレッド内のメール一覧を取得
17
+ var messages = thread.getMessages();
18
+
19
+ // メールを一つずつ取り出す
20
+ messages.forEach(function(message) {
21
+
22
+ // メール本文を取得
23
+ var plainBody = message.getPlainBody();
24
+
25
+ var id = plainBody.match(/ID : (.*)/);
26
+
27
+ var companyName = plainBody.match(/会社名 : (.*)/);
28
+
29
+ var personName = plainBody.match(/担当者名 : (.*)/);
30
+
31
+ var serviceName = plainBody.match(/サービス名 : (.*)/);
32
+
33
+ var date = message.getDate()
34
+
35
+ var sheet = SpreadsheetApp.getActive().getSheetByName('シート1');
36
+
9
- var itemId = plainBody.match(/会社名 : (.*)/).replace('会社名', '').replace('r', '')
37
+ date = Utilities.formatDate(date,"JST", "yyyy/MM/dd");
38
+ console.log("dateは" + date);
39
+
40
+ var lastRow = sheet.getLastRow() + 1;
41
+
42
+ // セルを取得して値を転記
43
+ sheet.getRange(lastRow, 1).setValue(id[0]);
44
+ sheet.getRange(lastRow, 2).setValue(companyName[0]);
45
+ sheet.getRange(lastRow, 3).setValue(personName[0]);
46
+ sheet.getRange(lastRow, 4).setValue(serviceName[0]);
47
+ sheet.getRange(lastRow, 5).setValue(date);
48
+ console.log("date②は" + date);
49
+ });
50
+ });
51
+ }
10
52
  ```
11
53
 
12
54
  特定の文字列削除はreplace以外で行うのでしょうか。