虽然完全意识到这可能是重复的,但我根本无法找到解决此问题的方法。
如何在网址中的任何位置获取参数?
考虑这些网址:
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¶mTwo=2&version=2
我希望从这些网址中获取version=2
。
如果true
启动参数,此正则表达式将返回version=2
,但如果它位于第一个参数之后则不会返回。
https:\/\/(\w)+.domain.com\/(\w)+\/(\S)+\/specific-slug\/[?&]+(version=2)
如果version=2
出现在参数中的任何位置,我怎样才能返回true?
答案 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”。