我不知道如何忽略来自ER的项目。
只需要得到P1,但是这个返回/P1。
是否可以忽略?
$pattern = "#(/P[0-9])?#";
这里有两个选项:
-
将其从组中排除,
P1
将成为捕获组中的内容:$pattern = "#/(P[0-9])#";
-
使用后视,这样
/
甚至不是匹配的一部分,整个匹配将是P1
:$pattern = "#(?<=/)P[0-9]#";
请注意,我还删除了?
后你的组,因为我不认为你真的想要它,这使得前一个元素可选,所以正则表达式(/P[0-9])?
将匹配文字任何字符串(它将匹配一个空字符串,如果/P[0-9]
不能匹配)。
使用preg_*函数,您可以使用'K
技巧重置匹配的开始,例如:
$pattern = '~/'KP[0-9]~';