2014-10-17 84 views
-1

有人能幫我理解下面的php正則表達式。 preg_match("|store:(.*)|", $k, $matches)在PHP正則表達式中,'|'是什麼意思?代表?PHP - 解釋REGEX表達式

... 
$storevals = array(); 
foreach ($item as $k => $v) 
{ 
    if (preg_match("|store:(.*)|", $k, $matches)) 
    { 
     $storevals[$matches[1]] = $v; 
    } 
} 
... 

在此之前,功能是將CSV文件轉換爲陣列($item)與CSV標題是所述鍵陣列的呼叫。基本上我試圖找出CSV文件的格式。

在此先感謝。

+0

它是模式分隔符。 – hjpotter92 2014-10-17 15:01:25

+0

「|」是標記正則表達式開始和結束的分隔符。任何字符都可以使用('/'是常見的)。 – 2014-10-17 15:01:54

回答

0

這裏是一個詳盡的解釋 -

store:匹配字符 「店:」 從字面上(區分大小寫) 第1個捕獲組(.*)(通過括號分組).*匹配任何字符(除換行符) 量詞:*零和無限次之間,儘可能多次,根據需要回饋[貪婪]

管道|是正則表達式的分隔符。

0

|在上面的代碼中充當分隔符而不是正則表達式的一部分。使用PCRE功能時,要求圖案由分隔符包圍。

查看更多關於PHP分隔符的信息,在here

0

管道可以用作正則表達式分隔符,這是你的情況。

這正則表達式是類似○:

/store:(.*)/ 

這意味着,搜索0+字符以下store: