我正在尝试从以格式给出的字符串中选择文本
"saturday temp=hot cloudy=no rainy=maybe"
我想选择一个冒号后面的单词,我可以使用以下正则表达式来做到这一点:
(?<=temp=)[^e]+(?= )
这将选择单词“ hot”。
但是,当我尝试将正则表达式作为变量传递时,它返回为null。如下图所示
let input = "saturday temp=hot cloud=no rainy=maybe wet=no";
let str = `\\/(?<=temp=)[^e]+(?= )\\/`;
let match1 = input.match("(?<=temp=)[^e]+(?= )");
let match2 = input.match(new RegExp(str));
console.log(match1); // hot
console.log(match2); // null
答案 0 :(得分:1)
在将正则表达式作为字符串传递时,请不要指定正则表达式定界符:
let input = "saturday temp=hot cloud=no rainy=maybe wet=no";
let str = `(?<=temp=)[^e]+(?= )`; // leading/trailing escape symbols and regex delims deleted
let match1 = input.match("(?<=temp=)[^e]+(?= )");
let match2 = input.match(new RegExp(str));
console.log(match1); // hot
console.log(match2); // hot