有人能帮我理解下面的php正则表达式吗。preg_match("|store:(.*)|", $k, $matches)
在PHP正则表达式中,"|"代表什么?
...
$storevals = array();
foreach ($item as $k => $v)
{
if (preg_match("|store:(.*)|", $k, $matches))
{
$storevals[$matches[1]] = $v;
}
}
...
此函数之前的调用用于将CSV文件转换为数组($item
),其中CSV标头是数组的键。基本上,我正在尝试弄清楚CSV文件的格式。
提前谢谢。
这里有一个全面的解释-
store:
从字面上匹配字符"store:"(区分大小写)第一个捕获组(.*)
(用括号分组).*
匹配任何字符(换行符除外)量化器:*
在零次和无限次之间,尽可能多次,根据需要回馈[贪婪]
管道|
是正则表达式的分隔符。
|
充当分隔符,而不是正则表达式的一部分。当使用PCRE函数时,需要用分隔符将模式括起来。
有关PHP分隔符的更多信息,请访问此处。
管道可以用作regex分隔符,这里就是您的情况。
此正则表达式类似于o:
/store:(.*)/
这意味着,在store:
之后搜索0+个字符