我讨厌发布像这样的问题,但是我真的很喜欢正则表达式,如果那里的专家可以给我一个快速解决方案,我会非常感激。
我需要一个正则表达式来匹配像这样的网址模式
https://mywebsite.com/foo/[a-z]/[a-z]/[0-9]/[0-9]/[0-9]
匹配示例:
不匹配示例:
HELP!
答案 0 :(得分:2)
好像你想要这样的东西,
https:\/\/mywebsite\.com\/foo(?:\/[a-z]+){0,2}(?:\/[0-9]+){3}
必要时添加锚点。
^https:\/\/mywebsite\.com\/foo(?:\/[a-z]+){0,2}(?:\/[0-9]+){3}$
{0,2}
中的范围量词(?:\/[a-z]+){0,2}
重复前一个/[a-z]+
的标记,零或一次或两次。
答案 1 :(得分:0)
“数字”是指数字还是数字? 我假设你的意思是数字。
符合您的要求:
/^https:\/\/mywebsite\.com\/foo\/[a-z]*\/[a-z]*\/\d+\/\d+\/\d+$/
然而,当你写“第一和第二[a-z]是可选的”我猜你的意思是跟随它们的斜线也应该是可选的。如果是这种情况,请使用:
/^https:\/\/mywebsite\.com\/foo\/([a-z]+\/)?([a-z]+\/)?\/\d+\/\d+\/\d+$/
最后的$
确保没有其他内容。