以imacros计算字符串长度

时间:2017-07-12 05:58:27

标签: regex imacros

这些是从中提取数据的标签

<div class="textForAType">
Agent
<span class="agentNameh">Vijay Realty</span>
</div>

使用代码"TAG POS=1 TYPE=span ATTR=CLASS:agentNameh&&TXT:* EXTRACT=TXT"提供输出 Vijay Realty TAG POS=1 TYPE=div ATTR=CLASS:textForAType&&TXT:* EXTRACT=TXT给我O / P AgentAgent Vijay Realty

所以我试图取代名称&#34; Vijay Realty&#34;输出中有空白&#34; AgentAgent Vijay Realty&#34;然后计算字符数并将其除以2以得到单词&#34; Agent&#34;

所以这恰好是组合代码

TAG POS=1 TYPE=span ATTR=CLASS:agentNameh&&TXT:* EXTRACT=TXT
SET AgentName {{!EXTRACT}}
TAG POS=1 TYPE=div ATTR=CLASS:textForAType&&TXT:* EXTRACT=TXT
SET Owner {{!EXTRACT}}
SET CertiAgent EVAL("var s=\"{{!Owner}}\"; s.replace(s.match(/{{!AgentName}}/gi),'');")
'PROMPT {{CertiAgent}}
SET !VAR1 EVAL("var x=\"{{!CertiAgent}}\"; x=x.match(/^.{(length(\"{{!CertiAgent}}\")/2)}/).join(''); x;")
PROMPT {{!VAR1}}

但是运行此代码会出错

unterminated parenthetical, line: 8 (Error code: -1001)

我不知道错误到底是什么。 关于I.m犯错的任何建议。 感谢

  

P.s:我试图在属性&#34; textForAType&#34;

之后提取文本

1 个答案:

答案 0 :(得分:1)

这里你去...你需要记住清除EXTRACT变量,否则你所做的每一次提取都会被附加到它(这就是为什么你在结果中有两次“Agent”)。

以下代码可以解决您的问题并为您提供“代理”

的值
TAG POS=1 TYPE=span ATTR=CLASS:agentNameh&&TXT:* EXTRACT=TXT
SET AgentName {{!EXTRACT}}
'display extracted value for testing purposes
PROMPT {{AgentName}}

'Clear the Internal Extract buffer
SET !EXTRACT NULL 

TAG POS=1 TYPE=div ATTR=CLASS:textForAType&&TXT:* EXTRACT=TXT
SET Owner {{!EXTRACT}}
'display extracted value for testing purposes
PROMPT {{Owner}}

'Clear the Internal Extract buffer
SET !EXTRACT NULL    

'Use Javascript evaluation to replace the "agentNameh" section of "textForAType" to (blank), and return results as CertiAgent2
SET CertiAgent2 EVAL("var x=\"{{Owner}}\"; x.replace(\"{{CertiAgent}}\",\"\");")
'display variable value for testing purposes
PROMPT {{CertiAgent2}}

如果这个答案有帮助,请标记。