php中的正则表达式:word的强制第二次出现
我需要为我正在开发的应用程序匹配一些URL 我得到了这个引用字符串:php中的正则表达式:word的强制第二次出现,php,regex,Php,Regex,我需要为我正在开发的应用程序匹配一些URL 我得到了这个引用字符串: content/course/32/lesson/61/content/348 我需要一个匹配的模式 content 或 到目前为止,我所做的是提出以下模式: $my_regex = "/content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/"; 但是,它有以下问题:此字符串返回一个不应匹配的匹配项: content/course/32/
content/course/32/lesson/61/content/348
我需要一个匹配的模式
content
或
到目前为止,我所做的是提出以下模式:
$my_regex = "/content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/";
但是,它有以下问题:此字符串返回一个不应匹配的匹配项:
content/course/32/lesson/61/content
我认为这与单词内容重复两次有关,但我不能完全确定
非常感谢任何帮助。比赛的原因是轮换
content\/?$
火柴
content/course/32/lesson/61/content
要解决此问题,请在正则表达式的开头添加一个^
(行首),以确保匹配整个字符串,而不仅仅是结尾:
/^content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/
比赛的原因是交替
content\/?$
火柴
content/course/32/lesson/61/content
要解决此问题,请在正则表达式的开头添加一个^
(行首),以确保匹配整个字符串,而不仅仅是结尾:
/^content(\/?|(\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4}))$/
这项工作:
/(^content\/?|content\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4})$/
这项工作:
/(^content\/?|content\/course\/\d{1,4}\/lesson\/\d{1,4}\/content\/\d{1,4})$/
加上1,我的想法是一样的:)@ndn很好的解释。容易解决。谢谢。加上1,我也这么想:)@ndn很好的解释。容易解决。谢谢。如果您的模式包含大量斜杠,那么使用不同的正则表达式分隔符就更容易了,而不必转义所有内容。请尝试删除此部分(\/?
尝试删除此部分(\/?
并匹配最后一个括号)
在$
之前如果您的模式包含大量斜杠,那么使用不同的正则表达式分隔符就更容易了,而不必转义所有内容。请尝试删除此部分(\/?|
尝试删除此部分(\/?|并匹配最后一个括号)
在$/code>之前