我需要为我正在处理的应用程序匹配几个网址;
所以,我有这个参考字符串:
content/course/32/lesson/61/content/348
我需要一个匹配
的模式content
OR
content/course/[number]/lesson/[number]/content/[number]
到目前为止,我所做的是提出这种模式:
$my_regex = "/content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/";
然而,有以下问题:此字符串返回一个匹配,否则不应该:
content/course/32/lesson/61/content
我认为它与content
重复两次有关,但我并不完全确定。
非常感谢任何帮助。
答案 0 :(得分:3)
匹配的原因是交替。
content\/?$
匹配
content/course/32/lesson/61/content
要解决此问题,请在正则表达式的开头添加^
(行首)以确保整个字符串匹配,而不仅仅是结尾:
/^content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/
答案 1 :(得分:1)
这有效:
/(^content\/?|content\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4})$/