Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex PCRE正则表达式前瞻_Regex_Preg Match_Pcre - Fatal编程技术网

Regex PCRE正则表达式前瞻

Regex PCRE正则表达式前瞻,regex,preg-match,pcre,Regex,Preg Match,Pcre,我无法让PCRE lookahead正确工作,我们将感谢您的帮助,我发现很难解释,但现在我们开始,以这种模式为例: /^\/page(\/?[a-z0-9\.\_\-]+)*\/?$/i 这符合: /页面 /页面/ /第/abc/def页/ 这是好的,但这也与“/pageabcd”匹配,后者被认为是错误的。因此,基本上,对于URI,尾随“/”应该是可选的,除非有其他[a-z0-9\.\-\\\\\]* 我已经无助地尝试了^\/page(?=(\/)(\/?[a-z0-9\.\\-]+)*(

我无法让PCRE lookahead正确工作,我们将感谢您的帮助,我发现很难解释,但现在我们开始,以这种模式为例:

/^\/page(\/?[a-z0-9\.\_\-]+)*\/?$/i
这符合:

  • /页面
  • /页面/
  • /第/abc/def页/
这是好的,但这也与“/pageabcd”匹配,后者被认为是错误的。因此,基本上,对于URI,尾随“/”应该是可选的,除非有其他
[a-z0-9\.\-\\\\\]*


我已经无助地尝试了
^\/page(?=(\/)(\/?[a-z0-9\.\\-]+)*(\/)$
,当我知道我做错了什么时

你可以通过移除量化捕获组中
后的
量词来强制出现字母、数字、
-
。此外,您可以使用
\w
而不是
[a-zA-Z0-9\
来稍微缩短模式。非捕获组也更合适,因为您不需要捕获A的值(将
替换为
(?:

使用


请看。

看起来我的转义角色在
之后被从postRemove
中删除了(\/
-谢谢你,乔伊,你好吗?@WiktorStribiżew-omg,+1,很简单……我一定是在放脑屁什么的,谢谢,伙计,保持清醒
/^\/page(?:\/[\w.-]+)*\/?$/i
            ^