Regex 带有可选URL片段的正则表达式前瞻
我在为以下内容编写一个包罗万象的正则表达式时遇到了问题 我有一个url的格式 www.someurl.com/dir1/dir2/dir3/page?bunchorfrandomvariables 我还有一个稍微修改过的URL版本 www.someurl.com/dir1/newdirectory/dir2/dir3/page?bunchorfrandomvariables 其中newdirectory可以是字母数字,也可以包含破折号 我想要一个可以匹配原始URL(没有“newdirectory”)和任何经过的“newdirectory”的常规表达式 我的第一次尝试类似于Regex 带有可选URL片段的正则表达式前瞻,regex,lookahead,Regex,Lookahead,我在为以下内容编写一个包罗万象的正则表达式时遇到了问题 我有一个url的格式 www.someurl.com/dir1/dir2/dir3/page?bunchorfrandomvariables 我还有一个稍微修改过的URL版本 www.someurl.com/dir1/newdirectory/dir2/dir3/page?bunchorfrandomvariables 其中newdirectory可以是字母数字,也可以包含破折号 我想要一个可以匹配原始URL(没有“newdirectory
^www.someurl.com/dir1/[a-zA-Z]+/dir2/dir3/page?.*
不幸的是,这打破了第一个示例,因为[a-zA-Z]+捕获了“dir2”。用lookaheads写这篇文章是否可以在一行中捕获两个示例?我刚刚修改了您的正则表达式:
- 逃过了slaches(根据您使用的语言,可能不需要)
- 使用
?
^www.someurl.com\/dir1(\/[a-zA-Z]+)?\/dir2\/dir3\/page?.*
是的,就这么简单。在思考过程的早期,我尝试过类似的方法,但我没有想到在dir1后面加“/”在()中?。非常感谢你的帮助