簡體   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