/ / Googleスクリプトが正規表現に一致-javascript、regex、gmail-api

Googleスクリプトがregexとマッチする - javascript、regex、gmail-api

Googleスクリプトを使用して、常に次のような文字列部分を一致させようとしています。 * YYYYMMDD; hhmm * 例:* 20170701; 0900 *

私はこの正規表現を定義しました:

var regExp = ("(?:*)(?P<date>d+)(?:;)(?P<time>d+)(?:*)","gi");

そして、それを使用して呼び出します:

var datepart = textbody.match(regExp);

ただし、同じテキストが https://regex101.com/ うまくいく。私が間違っていることは何ですか?

回答:

回答№1は0

PCREエンジンの正規表現を作成しましたが、Google AppsスクリプトではJavaScriptに正規表現を使用する必要があります。

すべての名前付きキャプチャグループを削除します(JSではサポートされていません。 (?P<date>d+) => (d+))、正規表現リテラルを使用します(つまり、 RegExp("pattern", "gi") => /pattern/gi、しかし i ここでは必要ありません。パターンに文字が含まれている場合にのみ使用してください)、グローバル修飾子を削除して、 捕獲群 そのまま。

var rx = /*(d+);(d+)*/;
var datepart = textbody.match(rx);
var date, time;
if (datepart) {
date = datepart[1];
time = datepart[2];
}

ご了承ください (?:*) = * キャプチャしていないグループはまだ消費パターン(つまり、一致したものが一致値に追加されます)。正規表現のサブパートを取得したいので、キャプチャグループに集中するだけです。 (...) 部品。