0

我试图在一系列 URL 中找到以下字符串

?filters=categories

网址如下:

www.domain.com/shoes?filters=categories
www.domain.com/clothes/design?filters=categories
www.domain.com/bags/designer/season?filters=categories

我一直在看这里http://www.regular-expressions.info/reference.html

我试过.?filters=categories了,但它似乎不起作用

找到我需要的正确正则表达式是什么?

谢谢

4

5 回答 5

1

转义特殊字符?以使其成为文字。

\?filters=categories$
于 2013-06-08T08:16:16.547 回答
1

?是一个特殊的正则表达式字符,意思是“前面表达式的 0-1”。您需要对其进行转义以使其成为文字:

\?filters=categories

如果要提取过滤器参数值,请使用此正则表达式:

(?<=\?filters=).*?(?=$|&)

此表达式将categories在您的示例中匹配。

于 2013-06-08T08:16:29.687 回答
0
/\?filters=categories$/

但我怀疑正则表达式是否可以解决您的问题。使用其他函数可以更快地匹配静态字符串。

于 2013-06-08T08:16:03.113 回答
0

您可能正在寻找的是:

\?filters=categories$

filters=categories这将匹配字符串末尾的文字问号。

但是,如果 URL 的查询字符串有可能包含其他数据,并且您仍然希望在这种情况下进行匹配,则应该改用适当的 URL 解析库。或者可能改用这个:

(?<=\?|\?.*&)filters=categories(?=&|$)

这匹配filters=categories查询字符串中的任何点,使用环视。

于 2013-06-08T08:17:48.950 回答
0

(\?filters=类别)

这个正则表达式将完全匹配你想要的......

http://www.regexbuddy.com/这更有帮助

于 2013-06-08T08:20:43.647 回答