URL匹配正则表达式

时间:2017-08-22 15:21:26

标签: regex url

我需要一些URL匹配正则表达式的帮助。我阅读了正则表达式语法文档,但它太复杂了。

我正在尝试为结帐渠道创建网址列表,如何为以下内容设置正则表达式?

https://shop.mysite.ca/[unique ID]/checkouts/[unique ID 2]
OR
https://shop.mysite.ca/[unique ID]/checkouts/[unique ID
2]?step=contact_information

到目前为止,我不知道如何将可选参数“step = contact_information”放入

/^(https:\/\/shop.mysite.ca\/)([\da-z]+)(\/checkouts\/)([\da-z]+)$/

3 个答案:

答案 0 :(得分:1)

你可以使用“?”使一组显示0或1次,使其成为可选项。

/^(https:\/\/shop.mysite.ca\/)([\da-z]+)(\/checkouts\/)([\da-z]+)(\?step=contact_information)?$/

答案 1 :(得分:0)

这应该有效

^(https:\/\/shop.mysite.ca\/)([\da-z]+)(\/checkouts\/)([\da-z]+)((\?step=contact_information)*)$

修改:忘记?并改为使用*。 @thomas的另一个解决方案我认为好一点

答案 2 :(得分:0)

试一试:

^(https:\/\/shop.mysite.ca\/)(\d+.)(\/checkouts)(\/)(\d+.)($|\?\w.+$)

如果唯一ID由非数字字符组成:

^(https:\/\/shop.mysite.ca\/)([\da-zA-Z]+.)(\/checkouts)(\/)([\da-zA-Z]+.)($|\?\w.+$)