需要有关正则表达式 helicon 规则的帮助

发布于 2024-11-07 11:43:44 字数 519 浏览 0 评论 0原文

我需要一些有关正则表达式的帮助,因为我正在螺旋中编写新规则。

示例 url 将包含文件名和查询字符串参数,我想在上面的 url 中匹配这两个参数,

www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20 

我想检查它是否是 hello.aspx 并具有查询字符串 filename=/test.asp

文件名可以位于查询字符串中的任何位置。

我想将上面的网址分解到其他页面,

mynewpage.aspx $2$3 etc///

我写了以下网址,但它不起作用,它匹配所有像sample1.aspx或任何文件名的模式,

(.*)(\/hello.aspx\?+)(.*)(filename=\/test\.asp)(.*)

任何帮助将不胜感激

I need some help with the regex as i am writing a new rule in the helicon.

the sample url will have file name and a query string parameter i want to match on both

www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20 

in the above url i want to check if it is hello.aspx and has query string filename=/test.asp

filename can be anywhere in the querystring.

i want to break the above url into some other page

mynewpage.aspx $2$3 etc///

i wrote the following url but its not working , it matching pattern for all like sample1.aspx or any file name

(.*)(\/hello.aspx\?+)(.*)(filename=\/test\.asp)(.*)

any help will be appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫腻 2024-11-14 11:43:44

您需要的是非捕获组

(?:.*)(\/hello.aspx\?+)(?:.*)(filename=\/test\.asp)(?:.*)
["www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20", "/hello.aspx?", "filename=/test.asp"]

(?:.*)(\/hello.aspx\?+)(?:.*)(filename=\/test\.asp)(.*)
["www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20", "/hello.aspx?", "filename=/test.asp", "&employeeid=2100&age=20"]

如果您愿意获取所有 参数与查询字符串分开,你可以这样做:

string queryString = (new Uri("...")).Query;
NameValueCollection parameters = HttpUtility.ParseQueryString(queryString);
parameters.Get("filename");
parameters.Get("employeeid");
parameters.Get("age");

What you need are non capturing groups:

(?:.*)(\/hello.aspx\?+)(?:.*)(filename=\/test\.asp)(?:.*)
["www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20", "/hello.aspx?", "filename=/test.asp"]

(?:.*)(\/hello.aspx\?+)(?:.*)(filename=\/test\.asp)(.*)
["www.testwebsite.com/hello.aspx?filename=/test.asp&employeeid=2100&age=20", "/hello.aspx?", "filename=/test.asp", "&employeeid=2100&age=20"]

If you want to get all the parameters separately from the query string you can do it like this:

string queryString = (new Uri("...")).Query;
NameValueCollection parameters = HttpUtility.ParseQueryString(queryString);
parameters.Get("filename");
parameters.Get("employeeid");
parameters.Get("age");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文