繁体   English   中英

如何忽略正则表达式中的字符

[英]how to ignore a character in the regular expression

我不知道如何忽略急诊室的项目。

仅需要获取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]~';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM