正则表达式Lookahead,带有可选的URL

时间:2013-12-23 21:21:34

标签: regex lookahead

我在编写包含以下内容的全包正则表达式时遇到了问题。

我有一个格式为

的网址
  

www.someurl.com/dir1/dir2/dir3/page?bunchofrandomvariables

我还有一个稍微修改过的网址

  

www.someurl.com/dir1/newdirectory/dir2/dir3/page?bunchofrandomvariables

其中newdirectory可以是字母数字,可以包含破折号。

我想要一个可以匹配原始网址(没有“新目录”)和任何“新目录”的常规表达。

我的第一次尝试类似于

^www.someurl.com/dir1/[a-zA-Z]+/dir2/dir3/page?.*

不幸的是,这打破了第一个例子,因为[a-zA-Z] +捕获了“dir2”。无论如何要用前瞻来写这个以在一行中捕获两个例子吗?

1 个答案:

答案 0 :(得分:1)

我刚刚修改了你的正则表达式:

  • 取消了slaches(可能根据您使用的语言不需要)
  • 使用/newdirectory

    使?部分可选
    ^www.someurl.com\/dir1(\/[a-zA-Z]+)?\/dir2\/dir3\/page?.*
    

Working DEMO