我正在尝试编写一个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);
}
}
问题是RegExp似乎在www.rubular.com(永久链接)中正常工作,但在谷歌脚本的调试器中评估不同。这里的规则是否存在差异?
文本:
页面http://www.newenglandoil.com/rhodeisland/zone2.asp?x=0有 自上次检查后发生了变化。
------改变------新英格兰之家回到罗德岛之家
请求特别优惠 来自您当地的燃料经销商
石油经销商
2周免费试用 建议经销商
[北罗德岛。] 点击下面的横幅以获取更多公司信息 以下是北罗德岛High 0 Low 0的油价 平均为0 公司名称城镇价格电话#Date Calc PRICERITE OIL INC - PAWTUCKET $ 3.210 6/14/2013 DUPUIS OIL CO + PAWTUCKET $ 3.160 6/26/2013 DUPUIS OIL CO PAWTUCKET $ 3.499 6/18/2013 专业加热服务 - NORTH PROVIDENCE $ 3.120 6/25/2013 MALONEY'S OIL + NORTH PROVIDENCE $ 3.120 6/26/2013 MALONEY'S OIL PAWTUCKET $ 3.450 6/18/2013 A-STAR OIL - CUMBERLAND $ 3.120 6/24/2013 UNIVERSAL OIL COMPANY + CUMBERLAND $ 3.120 6/26/2013 UNIVERSAL OIL COMPANY CUMBERLAND $ 3.230 6/21/2013经济实惠的燃料 SEEKONK $ 3.160 6/25/2013 RAMBONE&amp; SPRAQUE OIL SERVICE INC。 NORTH SCITUATE $ 3.350 6/18/2013 THRIFTY OIL TIVERTON $ 3.199 6/19/2013折扣油类经纪人 SMITHFIELD $ 3.249 6/18/2013 T H MALLOY&amp; SONS CUMBERLAND $ 3.499 6/18/2013 亨利油公司 CUMBERLAND $ 3.600 6/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对此不做任何陈述或保证 由经销商提供的价格,质量,交付或可用性 到这个网站。
*价格可能会发生变化
COPYRIGHT©2011 Energy Data,LLC,保留所有权利。
-------------------页面结束报告----------------------- < / p>
Google脚本结果:
[“CE \ xa0 $ 3.349 \ xa06 / 18/2013 \ xa0”,“E \ xa0 $ 3.349 \ xa06 / 18/2013 \ XA0" ]
Rubular结果:
- PRICERITE OIL INC
醇>
- PAWTUCKET $ 3.210 6/14/2013 DUPUIS OIL CO
- PAWTUCKET $ 3.160 6/26/2013 DUPUIS OIL CO PAWTUCKET $ 3.499 6/18/2013 专业加热服务
- NORTH PROVIDENCE $ 3.120 6/25/2013 MALONEY'S OIL
- NORTH PROVIDENCE $ 3.120 6/26/2013 MALONEY'S OIL PAWTUCKET $ 3.450 6/18/2013 A-STAR OIL
- CUMBERLAND $ 3.120 6/24/2013 UNIVERSAL OIL COMPANY
- CUMBERLAND $ 3.120 6/26/2013 UNIVERSAL OIL COMPANY CUMBERLAND $ 3.230 6/21/2013经济实惠的燃料 SEEKONK $ 3.160 6/25/2013 RAMBONE&amp; SPRAQUE OIL SERVICE INC。 NORTH SCITUATE $ 3.350 6/18/2013 THRIFTY OIL TIVERTON $ 3.199 6/19/2013折扣油类经纪人 SMITHFIELD $ 3.249 6/18/2013 T H MALLOY&amp; SONS CUMBERLAND $ 3.499 6/18/2013 亨利油公司 CUMBERLAND $ 3.600 6/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
由于
答案 0 :(得分:0)
你可以尝试:
var bodyRe = new RegExp("Company Name Town Price Phone. Date Calc([^>]*?(?=Oil prices quoted on this Website[^>]*))");
因为你的文字有换行符,而在javascript中。*与换行符不匹配,但这样做:[^&gt;] *(这意味着重复任何字符,包括换行符,而不是&gt;字符)
然后,myArray [1]应该是您所需的输出。