正则表达式匹配2种类型的网址

时间:2017-04-11 15:36:30

标签: regex

我想要一个与以下两个示例匹配的正则表达式:

http://testsite.com/1234/MyPage
http://testsite.com/MyPage

但是,以下示例不匹配:

http://testsite.com/
http://testsite.com/anything/MyPage

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

^http:\/\/testsite\.com(?:\/1234)?\/MyPage$

这是一个实例:https://regex101.com/r/eu6HdA/4

如果要获得允许的子页面列表,可以使用以下正则表达式:

^http:\/\/testsite\.com(?:\/(?:1234|4567|7890))?\/MyPage$

实例:https://regex101.com/r/eu6HdA/5

<强>解释

  • ^字符串的开头
  • http:\/\/testsite\.com使用\转义是必需的特殊正则表达式字符
  • (?:\/1234)?匹配可选不匹配的/1234
  • (?:\/(?:1234|4567|7890))?匹配可选不匹配的群组与/以及以下12344567或{{1}之一}
  • 7890字符串结尾