【发布时间】:2014-03-23 14:56:22
【问题描述】:
假设我有:
SET !EXTRACT "this is a Make of the car"
如果我使用:
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"Make\"); ")
然后我得到一个提示“Make”。现在,假设我对“a Make of the”这个短语感兴趣。根据在线测试员 (http://www.regexr.com/) 的说法,正则表达式为:
(?<=this is)(.*)(?=car)
但是,下面的代码不起作用:
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"(?<=this is)(.*)(?=car)\"); ")
我收到以下错误:
SyntaxError: 量词无效,第 16 行(错误代码:-1001)
为什么?
编辑:显然,使用其他在线测试器 (http://www.pagecolumn.com/tool/regtest.htm),正则表达式应该是:
(?![this is])(.*)(?=car)
但是,通过使用这个:
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"(?![this is])(.*)(?=car)\"); ")
我明白了
一个制造,一个制造
有什么想法吗?
【问题讨论】:
-
我不擅长正则表达式,但这是一个有趣的问题。我在 stackoverflow 聊天中询问正则表达式解决方案。频道 JavaScript。
-
iMacros 为此目的内置了“搜索”功能:wiki.imacros.net/SEARCH
标签: javascript regex eval imacros