Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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
Php 预匹配问题_Php_Regex_Pcre - Fatal编程技术网

Php 预匹配问题

Php 预匹配问题,php,regex,pcre,Php,Regex,Pcre,如何在preg\u匹配中添加字符- preg\u match('\^(\w+/){0,2}\w+\.\w+$\',$string) 但它必须在字符串中最后一个之前。我已经尝试了我所知道的一切。我知道-需要转义。所以我试着在不同的地方逃离它,但它不起作用:( argggg您知道破折号需要转义的信息不完整 preg_match('#^(\w+/){0,2}\w+-\.\w+$#', $string) 它需要在中转义,因为它在那里有特殊的含义,但在正则表达式的其余部分中没有特殊的含义,所以这里不需要

如何在preg\u匹配中添加字符
-

preg\u match('\^(\w+/){0,2}\w+\.\w+$\',$string)

但它必须在字符串中最后一个
之前。我已经尝试了我所知道的一切。我知道
-
需要转义。所以我试着在不同的地方逃离它,但它不起作用:(


argggg

您知道破折号需要转义的信息不完整

preg_match('#^(\w+/){0,2}\w+-\.\w+$#', $string)

它需要在中转义,因为它在那里有特殊的含义,但在正则表达式的其余部分中没有特殊的含义,所以这里不需要转义。

破折号仅在字符类中是特殊的,例如
[a-z]
那么您的问题是不完整的。发布您试图匹配的字符串。对不起,我认为它起作用了,检查这一点的最佳方法是什么?如果返回==1?这会起作用吗?这会返回多少个匹配项,还是对任何和所有匹配项返回1?对0个匹配项返回0,或对“找到的匹配项”返回1。它不计算匹配项,它在第一个匹配项之后停止。请查看文档,在某些情况下,这也可能返回FALSE。此外,我最近才在PCRE上阅读,我看到的所有实例都是
\-
,因此我认为它必须转义。我不理解这一点,arggg。不,你看到
\-
仅在字符类中。请仔细查看。