正则表达式在URL中的任何位置获取URL参数

时间:2016-03-10 16:05:40

标签: regex

虽然完全意识到这可能是重复的,但我根本无法找到解决此问题的方法。

如何在网址中的任何位置获取参数?

考虑这些网址:
https://any.domain.com/uri-slug/random-string/specific-slug/?version='2'
https://any.domain.com/uri-slug/random-string/specific-slug/?paramOne=1&version=2
https://any.domain.com/uri-slug/random-string/specific-slug/?paramOne=1&paramTwo=2&version=2

我希望从这些网址中获取version=2

如果true启动参数,此正则表达式将返回version=2,但如果它位于第一个参数之后则不会返回。

https:\/\/(\w)+.domain.com\/(\w)+\/(\S)+\/specific-slug\/[?&]+(version=2)

如果version=2出现在参数中的任何位置,我怎样才能返回true?

2 个答案:

答案 0 :(得分:3)

我认为你需要允许任何角色在寻找[?&]一次或多次之前出现0次或更多次(。*?)。您还可能需要考虑单引号字符。在你的第一个字符串中,我没有包含在下面。 正则表达式(\w)+\/(\S)+的部分也与“uri-slug”不匹配,因为它包含短划线(非单词)字符。

https:\/\/(\w)+.domain.com\/(\w)+\/(\S)+\/specific-slug\/.*?[?&]+(version=2)

我建议使用正则表达式测试工具以您想要的方式获得它。像https://regex101.com/这样的东西可以工作,但有很多。

答案 1 :(得分:0)

如果您使用String中的String.contains()方法作为代码的语言,请检查字符串是否包含“Version = 2”。