質問編集履歴

4

タイトル修正

2021/06/21 12:48

投稿

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

3

修正

2021/06/21 12:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,38 @@
1
- https://tonari-it.com/gas-regexp-replace-new/ を見て正規表現で取得た文字列から特定の文字列を削除しようと考えています。
1
+ https://tonari-it.com/gas-regexp-replace-new/ を参考にしています。
2
2
 
3
3
 
4
4
 
5
+ ```
6
+
7
+ // やりたいこと
8
+
9
+ var id = plainBody.match(/ID : (.*)/);
10
+
11
+ console.log(id); // ID :92829184129492
12
+
13
+ の `ID :`を削除 or `ID :`以降を取得したいです
14
+
15
+ ```
16
+
17
+
18
+
5
- 正規 + replaceで書いてみたら `TypeError: plainBody.match(...).replace is not a function` とエラーが出てします。
19
+ 正規表現 + replaceで書いてみたら `TypeError: plainBody.match(...).replace is not a function` とエラーが出てします。
20
+
21
+
22
+
23
+ ```
24
+
25
+ var companyName = plainBody.match(/会社名 : (.*)/).replace("会社名 : ", "");
26
+
27
+ ```
6
28
 
7
29
 
8
30
 
9
31
  正規表現単体で文字列は取得出来ています。
10
32
 
11
- 例:会社名 : 株式会社テラテイル
33
+ 会社名 : 株式会社テラテイル
34
+
35
+
12
36
 
13
37
 
14
38
 

2

追記

2021/06/21 09:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -104,4 +104,36 @@
104
104
 
105
105
 
106
106
 
107
+
108
+
109
+ ```
110
+
111
+ // gamail
112
+
113
+ 件名:【会社名】..問い合わせありがとうございます
114
+
115
+ 日時:timestamp
116
+
117
+ 本文
118
+
119
+ ID : 92829184129492
120
+
121
+ 会社名 : 株式会社teratail
122
+
123
+ 担当者名 :テラ・テイル
124
+
125
+ サービス名 : 有料サービスA
126
+
127
+
128
+
129
+ テキストテキストテキスト...
130
+
131
+ テキストテキストテキスト...
132
+
133
+ テキストテキストテキスト...
134
+
135
+ ```
136
+
137
+
138
+
107
139
  特定の文字列削除はreplace以外で行うのでしょうか。

1

追記

2021/06/21 08:02

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,91 @@
14
14
 
15
15
  ```ここに言語を入力
16
16
 
17
+ function myFunction() {
18
+
19
+ // 検索条件に該当するスレッド一覧を取得
20
+
21
+ var threads = GmailApp.search('subject:【会社名】問い合わせありがとうございます');
22
+
23
+
24
+
25
+ // スレッドを一つずつ取り出す
26
+
27
+ threads.forEach(function(thread) {
28
+
29
+
30
+
31
+ // スレッド内のメール一覧を取得
32
+
33
+ var messages = thread.getMessages();
34
+
35
+
36
+
37
+ // メールを一つずつ取り出す
38
+
39
+ messages.forEach(function(message) {
40
+
41
+
42
+
43
+ // メール本文を取得
44
+
45
+ var plainBody = message.getPlainBody();
46
+
47
+
48
+
49
+ var id = plainBody.match(/ID : (.*)/);
50
+
51
+
52
+
53
+ var companyName = plainBody.match(/会社名 : (.*)/);
54
+
55
+
56
+
57
+ var personName = plainBody.match(/担当者名 : (.*)/);
58
+
59
+
60
+
61
+ var serviceName = plainBody.match(/サービス名 : (.*)/);
62
+
63
+
64
+
65
+ var date = message.getDate()
66
+
67
+
68
+
69
+ var sheet = SpreadsheetApp.getActive().getSheetByName('シート1');
70
+
71
+
72
+
17
- var itemId = plainBody.match(/会社名 : (.*)/).replace('会社名', '').replace('r', '')
73
+ date = Utilities.formatDate(date,"JST", "yyyy/MM/dd");
74
+
75
+ console.log("dateは" + date);
76
+
77
+
78
+
79
+ var lastRow = sheet.getLastRow() + 1;
80
+
81
+
82
+
83
+ // セルを取得して値を転記
84
+
85
+ sheet.getRange(lastRow, 1).setValue(id[0]);
86
+
87
+ sheet.getRange(lastRow, 2).setValue(companyName[0]);
88
+
89
+ sheet.getRange(lastRow, 3).setValue(personName[0]);
90
+
91
+ sheet.getRange(lastRow, 4).setValue(serviceName[0]);
92
+
93
+ sheet.getRange(lastRow, 5).setValue(date);
94
+
95
+ console.log("date②は" + date);
96
+
97
+ });
98
+
99
+ });
100
+
101
+ }
18
102
 
19
103
  ```
20
104