gpt4 book ai didi

regex - 用正则表达式解析url和KRL的replace方法

转载 作者:行者123 更新时间:2023-12-01 12:37:40 26 4
gpt4 key购买 nike

我想获取当前页面的 URL(使用 page:env("caller"))并提取其中的一部分。

例如,我想拿

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats

并赋值

cats

一个变量。

我如何使用 KRL 执行此操作?

我试过了

url = page:env("caller");
query = url.replace("http://www\.google\.com/search\?sourceid=chrome&ie=UTF-8&q=", "");

但它只是将整个 page:env("caller") 分配给变量查询(例如 http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats )。

编辑:jQuery 解决方案也很可能会起作用。

编辑 2:@JAM --

您发布的选择语句似乎不起作用。我在 http://www.google.com/search?q=cats 上测试过它它没有开火。不确定 URL 是否与综合浏览量不匹配或什么(它看起来应该与我匹配)。

我放入的应用:

ruleset a835x36 {
meta {
name "regex testing2"
description <<
>>
author ""
logging on
}

rule get_query {
select when pageview "http://www.google.com/search.*(?:&|?)q=(\w+)(?:&|$)" setting(query)
notify("Query",query) with sticky = true;
}
}

此外,我正在寻找一种更强大的方式来获取查询,因为 Google 有很多方法可以使用看起来不像 http://www.google.com/search?q=cats 的 URL 登陆搜索结果页面。 .例如,去谷歌搜索猫只给出了 http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=cats&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=8ac6b4cea9b27ecb对于结果的 URL。不过我想我可以用正则表达式解析任何东西......

最佳答案

2 种方法来完成您想要的。

1) 在预 block 中

pre {
queryInURL = page:url("query");
q = queryInURL.replace(re/.*?q=(.*?)(?:$|&.*)/,"$1");
}
  • page:url("query") 抓取一个url中的整个参数字符串
  • 执行字符串替换以捕获您想要的特定查询参数

已测试完整示例应用程序

在 url 上测试 -> http://example.com/?q=cats&wow=cool

alt text

ruleset a60x439 {
meta {
name "url query test"
description <<
Getting the query from the current page URL
>>
author "Mike Grace"
logging on
}

rule get_query {
select when pageview ".*"
pre {
queryInURL = page:url("query");
q = queryInURL.replace(re/.*?q=(.*?)(?:$|&.*)/,"$1");
}
{
notify("Query",queryInURL) with sticky = true;
notify("q",q) with sticky = true;
}
}

}

2) JAM在规则选择表达式中的表现

关于regex - 用正则表达式解析url和KRL的replace方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com