0

ドキュメントから価格リストを解析する google-apps-script を作成しようとしています。最初のステップは、レポートから価格だけを抽出することでした。

function createAndSendDocument() {
 var labelObject = GmailApp.getUserLabelByName("Oil Prices");
 var bodyRe = new RegExp("(?:Company Name Town Price Phone. Date Calc)(.*)(?=Oil prices quoted on this Website.*)","m");

 var threads = labelObject.getThreads(0, 30);
 for (var i = 0; i < threads.length; i++) {
   var massageObject = threads[i].getMessages()[0];
   var htmlDoc = Xml.parse(massageObject.getBody(), true);
   var myArray = bodyRe.exec(htmlDoc.getElement().getElement("body").Text);
 }

}

問題は、 www.rubular.com (パーマリンク)では RegExp が正しく動作しているように見えますが、Google スクリプトのデバッガーでは評価が異なることです。ここにルールの違いはありますか?

文章:

ページhttp://www.newenglandoil.com/rhodeisland/zone2.asp?x=0は前回のチェック以降に変更されました。

------ 変更点 ------ ニューイングランド ホーム

                          ロードアイランド ホームに戻る

                            地元の燃料販売業者に特別オファーをリクエストする

                                  オイルディーラー

                               2 週間の無料トライアル ディーラーを提案する

                           SPRAQUE OIL SERVICE INC. NORTH SCITUATE 3.350 ドル 2013 年 6 月 18 日 Thrifty Oil TIVERTON 3.199 ドル 2013 年 6 月 19 日 ディスカウント オイル ブローカー スミスフィールド 3.249 ドル 2013 年 6 月 18 日 TH MALLOY & SONS カンバーランド 3.499 ドル 2013 年 6 月 18 日18/2013 GLOW OIL - LINCOLN $3.190 6/25/2013 RI OIL CLUB + LINCOLN $3.190 6/26/2013 RI OIL CLUB NORTH PROVIDENCE $3.349 6/18/2013 Energy Data, LLC による独立した検証なし。Energy Data, LLC は、この Web サイトで言及されているディーラーによるオイルの価格、品質、配送または入手可能性に関して、いかなる表明または保証も行いません。199 2013 年 6 月 19 日 DISCOUNT OIL BROKERS SMITHFIELD $3.249 2013 年 6 月 18 日 TH MALLOY & SONS CUMBERLAND $3.499 HENRY OIL COMPANY CUMBERLAND $3.600 6/18/2013 GLOW OIL - LINCOLN $3.190 + LINCOLN 3.190 ドル 2013 年 6 月 26 日 RI オイル クラブ ノース プロビデンス 3.349 ドル 2013 年 6 月 18 日 この Web サイトで引用されている石油価格は、Energy Data, LLC による独立した検証なしに、石油ディーラーから提供された情報に基づいています。Energy Data, LLC は、この Web サイトで言及されているディーラーによるオイルの価格、品質、配送または入手可能性に関して、いかなる表明または保証も行いません。199 2013 年 6 月 19 日 DISCOUNT OIL BROKERS SMITHFIELD $3.249 2013 年 6 月 18 日 TH MALLOY & SONS CUMBERLAND $3.499 HENRY OIL COMPANY CUMBERLAND $3.600 6/18/2013 GLOW OIL - LINCOLN $3.190 + LINCOLN 3.190 ドル 2013 年 6 月 26 日 RI オイル クラブ ノース プロビデンス 3.349 ドル 2013 年 6 月 18 日 この Web サイトで引用されている石油価格は、Energy Data, LLC による独立した検証なしに、石油ディーラーから提供された情報に基づいています。Energy Data, LLC は、この Web サイトで言及されているディーラーによるオイルの価格、品質、配送または入手可能性に関して、いかなる表明または保証も行いません。600 2013 年 6 月 18 日 グロー オイル - リンカーン $3.190 2013 年 6 月 25 日 RI オイル クラブ + リンカーン $3.190 2013 年 6 月 26 日 RI オイル クラブ ノース プロビデンス $3.349 2013 年 6 月 18 日Energy Data、LLCによる独立した検証なしに、オイルディーラー。Energy Data, LLC は、この Web サイトで言及されているディーラーによるオイルの価格、品質、配送または入手可能性に関して、いかなる表明または保証も行いません。600 2013 年 6 月 18 日 グロー オイル - リンカーン $3.190 2013 年 6 月 25 日 RI オイル クラブ + リンカーン $3.190 2013 年 6 月 26 日 RI オイル クラブ ノース プロビデンス $3.349 2013 年 6 月 18 日Energy Data、LLCによる独立した検証なしに、オイルディーラー。Energy Data, LLC は、この Web サイトで言及されているディーラーによるオイルの価格、品質、配送または入手可能性に関して、いかなる表明または保証も行いません。

    *価格は変更される場合があります

    COPYRIGHT © 2011 Energy Data, LLC, 無断複写・転載を禁じます。

------------------- ページ終了報告 -----------------------

Google スクリプトの結果:

["CE \xa0$3.349 \xa06/18/2013 \xa0", "E \xa0$3.349 \xa06/18/2013 \xa0"]

ルーブルの結果:

  1. プライスライト オイル INC
    • ポータケット $3.210 6/14/2013 DUPUIS OIL CO
    • PAWTUCKET $3.160 2013 年 6 月 26 日 DUPUIS OIL CO PAWTUCKET $3.499 2013 年 6 月 18 日 プロフェッショナル ヒーティング サービス
    • ノース プロビデンス $3.120 2013 年 6 月 25 日 マロニーズ オイル
    • ノース プロビデンス 3.120 ドル 2013 年 6 月 26 日 マロニーズ オイル ポータケット 3.450 ドル 2013 年 6 月 18 日 A スター オイル
    • カンバーランド $3.120 2013 年 6 月 24 日 ユニバーサル オイル カンパニー
    • カンバーランド $3.120 2013 年 6 月 26 日 ユニバーサル オイル カンパニー カンバーランド $3.230 2013 年 6 月 21 日 アフォーダブル フューエル シーコンク $3.160 2013 年 6 月 25 日 RAMBONE & SPRAQUE OIL SERVICE INC.ディスカウント オイル ブローカーズ スミスフィールド 3.249 ドル 2013 年 6 月 18 日 TH MALLOY & SONS カンバーランド 3.499 ドル 2013 年 6 月 18 日 ヘンリー オイル カンパニー カンバーランド 3.600 ドル 2013 年 6 月 18 日 グロー オイル
    • リンカーン $3.190 2013 年 6 月 25 日 RI オイル クラブ
    • リンカーン $3.190 2013 年 6 月 26 日 RI オイル クラブ ノース プロビデンス $3.349 2013 年 6 月 18 日

ありがとう

4

1 に答える 1

0

あなたは試すことができます:

var bodyRe = new RegExp("Company Name Town Price Phone. Date Calc([^>]*?(?=Oil prices quoted on this Website[^>]*))");

テキストには改行があり、javascript では .* は改行と一致しないため、[^>]* (つまり、> 文字以外の改行を含む任意の文字を繰り返すことを意味します)

次に、 myArray[1] が必要な出力になります。

于 2013-06-28T00:19:53.660 に答える