使用正则表达式提取属性值 Imacros
Extracting Attribut Value Imacros With Regex
我刚刚在 iMacros 中学习 RegEx,想提取该用户的 ID。
<a href="https://web.facebook.com/guruBKjualan?fref=gm&dti=634080336761016&hc_location=group" data-hovercard="/ajax/hovercard/user.php?id=1481093529&extragetparams=%7B%22fref%22%3A%22gm%22%2C%22directed_target_id%22%3A634080336761016%2C%22dti%22%3A634080336761016%2C%22hc_location%22%3A%22group%22%7D" data-hovercard-prefer-more-content-show="1" aria-controls="js_c" aria-haspopup="true" aria-describedby="js_d" id="js_e">Decky Zulkarnain</a>
在此示例中,提取的数据应为 1481093529
使用的方法当然是提取html代码,然后找到匹配的值提取出来。
我正在尝试这个
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(/user.php?id=[\"'](\d+?)[&]/)[1];")
但运气不好。
几次之后,我明白了。
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(/data-hovercard=[\"'](.+?)[\"']/)[1];")
它确实整体获得了data-hovercard属性。只是不是我真正需要的。但是我之前的尝试怎么会不起作用呢?我错过了什么吗?
谢谢
尝试
/(?<=(id=)).*(?=&)/g
说明
(?<=(id=))
匹配但不捕获为匹配 id=
.*
匹配所有字符
(?=&)
匹配 &
但不记得匹配了。
演示
var input = '<a href="https://web.facebook.com/guruBKjualan?fref=gm&dti=634080336761016&hc_location=group" data-hovercard="/ajax/hovercard/user.php?id=1481093529&extragetparams=%7B%22fref%22%3A%22gm%22%2C%22directed_target_id%22%3A634080336761016%2C%22dti%22%3A634080336761016%2C%22hc_location%22%3A%22group%22%7D" data-hovercard-prefer-more-content-show="1" aria-controls="js_c" aria-haspopup="true" aria-describedby="js_d" id="js_e">Decky Zulkarnain</a>';
var regex = /(?<=(id=)).*(?=&)/g;
var output = input.match( regex );
if ( output )
{
console.log( output[ 0 ] );
}
我刚刚在 iMacros 中学习 RegEx,想提取该用户的 ID。
<a href="https://web.facebook.com/guruBKjualan?fref=gm&dti=634080336761016&hc_location=group" data-hovercard="/ajax/hovercard/user.php?id=1481093529&extragetparams=%7B%22fref%22%3A%22gm%22%2C%22directed_target_id%22%3A634080336761016%2C%22dti%22%3A634080336761016%2C%22hc_location%22%3A%22group%22%7D" data-hovercard-prefer-more-content-show="1" aria-controls="js_c" aria-haspopup="true" aria-describedby="js_d" id="js_e">Decky Zulkarnain</a>
在此示例中,提取的数据应为 1481093529
使用的方法当然是提取html代码,然后找到匹配的值提取出来。
我正在尝试这个
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(/user.php?id=[\"'](\d+?)[&]/)[1];")
但运气不好。 几次之后,我明白了。
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(/data-hovercard=[\"'](.+?)[\"']/)[1];")
它确实整体获得了data-hovercard属性。只是不是我真正需要的。但是我之前的尝试怎么会不起作用呢?我错过了什么吗?
谢谢
尝试
/(?<=(id=)).*(?=&)/g
说明
(?<=(id=))
匹配但不捕获为匹配 id=.*
匹配所有字符(?=&)
匹配&
但不记得匹配了。
演示
var input = '<a href="https://web.facebook.com/guruBKjualan?fref=gm&dti=634080336761016&hc_location=group" data-hovercard="/ajax/hovercard/user.php?id=1481093529&extragetparams=%7B%22fref%22%3A%22gm%22%2C%22directed_target_id%22%3A634080336761016%2C%22dti%22%3A634080336761016%2C%22hc_location%22%3A%22group%22%7D" data-hovercard-prefer-more-content-show="1" aria-controls="js_c" aria-haspopup="true" aria-describedby="js_d" id="js_e">Decky Zulkarnain</a>';
var regex = /(?<=(id=)).*(?=&)/g;
var output = input.match( regex );
if ( output )
{
console.log( output[ 0 ] );
}