我正在使用http://regexr.com/3duh0这个正则表达式
(?:\S+\s)?\S*Environment Canada\S? 在这条线上
紧急洪水监视在美国东部时间东部时间星期五凌晨2点生效。降雨警告一直持续到晚上8点40分。资料来源:加拿大环境部。
当我将它应用到我的代码中时,它的工作原理是不同的,而且我无法解释为什么。
我使用节点0.10.32 (我知道,但在版本上没有选择),
var regexFindSource= new RegExp('(?:\S+\s)?\S*Environment Canada\S?');
var summary = 'Flash Flood Watch in effect until Friday, 2:00 AM EDT. Rainfall Warning in effect until 8:40 PM MDT. Source: Environment Canada'
source = summary.match(regexFindSource);
console.log(source);
//The results of this bit of code are
//What i want is 'Source: Environment Canada'
//What i get is 'Environment Canada'我之所以将正则表达式建立在加拿大环境部的基础上,是因为我想在加拿大环境部插入一个变量,如下所示
var source = wwArray.Source;
var regexFindSource= new RegExp('(?:\S+\s)?\S*' + source + '\S?');发布于 2016-08-03 16:38:23
在\S*之前加上‘\\’,在‘S*’之后加上':‘
var regexFindSource= new RegExp('(?:\S+\s)?\\S*: Environment Canada\S?');
var summary = 'Flash Flood Watch in effect until Friday, 2:00 AM EDT. Rainfall Warning in effect until 8:40 PM MDT. Source: Environment Canada'
source = summary.match(regexFindSource);
console.log(source);编辑:
var source = wwArray.Source;
var regexFindSource= new RegExp('(?:\S+\s)?\\S*: '+ source +'\S?');
var summary = 'Flash Flood Watch in effect until Friday, 2:00 AM EDT. Rainfall Warning in effect until 8:40 PM MDT. Source: Environment Canada'
source = summary.match(regexFindSource);
console.log(source);https://stackoverflow.com/questions/38749118
复制相似问题