Imacros 正则表达式 - 分离姓名和姓氏

问题描述

我现在挣扎了很长一段时间。 我正在使用 Imacros 从网站中提取文本,结果如​​下:

                    Niklaus Hasling               
                

名前和姓后有空格 该字符串存储在变量 !VAR2

我想使用一个正则表达式来隔离 !VAR3 中的名字和 !VAR4 中的姓氏

有人可以帮我吗?

我不知道如何编写正则表达式

'Extract and Save Names
TAG XPATH="/html/body/main/div[1]/div[1]/div/div[1]/div[1]/div/dl/dt/span" EXTRACT=TXT
SET !EXTRACT EVAL("'{{!EXTRACT}}'.trim(REGEX'')")
SET !VAR3 {{!EXTRACT}}
SET !EXTRACT NULL

'Extract and save SurNames
TAG XPATH="/html/body/main/div[1]/div[1]/div/div[1]/div[1]/div/dl/dt/span" EXTRACT=TXT
SET !EXTRACT EVAL("'{{!EXTRACT}}'.trim(REGEX'')")
SET !VAR4 {{!EXTRACT}}
SET !EXTRACT NULL

enter image description here

解决方法

我认为这可以修剪名称前后的空格:

^[ \t]+|[ \t]+$.

和一个数组可以拆分名称,但我不知道如何使用 iMacros

,

嗯,你好像喜欢XPATHREGEX,啊啊啊……!

没有 REGEX 的实现(我不喜欢也从不使用):

'Extract and Save First (`!VAR3`) + Last (`!VAR4`) Names:
SET !EXTRACT NULL
TAG XPATH="/html/body/main/div[1]/div[1]/div/div[1]/div[1]/div/dl/dt/span" EXTRACT=TXT
SET !ERRORIGNORE YES
SET !VAR3 EVAL("var s='{{!EXTRACT}}'; var x,y,z; x=s.trim(); y=x.split(' '); z=y[0]; z;")
SET !VAR4 EVAL("var s='{{!EXTRACT}}'; var x,z; x=s.trim(); y=x.split(' '); z=y[1]; z;")
'>
'Debug:
SET Debug_Info EXTRACT:<BR>_{{!EXTRACT}}_<BR><BR>
ADD Debug_Info First_Name:<SP>_{{!VAR3}}_<BR>Last_Name:<SP>_{{!VAR4}}_
PROMPT {{Debug_Info}}

!ERRORIGNORE 是“需要”的,以防 y[1] 不“存在”,否则 iMacros 将抛出运行时错误...