[英]PHP Regular expression, how to match the first section which includes a [ symbol?
我试图整个上午都在寻找这个答案,但是没有运气,我只想匹配[幻灯片或带有[括号的画廊]。
代码如下。
$gallery = get_post_meta($post->ID, 'gallery', true);
if (preg_match("|^/[slideshow", $gallery)) {
echo "Slideshow was forund";
} else if (preg_match("|^/[nggallery", $gallery)) {
echo "Gallery was found";
} else {
echo "No Match found - No Meta Data available";
}
我使用过的正则表达式虽然可以这样工作。 搜索字符串的开头,然后使用/将[排除为正则表达式的一部分而成为搜索的一部分,
正则表达式不是我的事。。。尽管我读得更多,但变得更加清晰。
转义字符为\\
not /
。 此外,您需要使用与正则表达式开始处相同的定界符结束该正则表达式。 因此,您的代码将需要是这样的:
preg_match("|^\[slideshow|", $gallery)
if (preg_match("/^\[slideshow/", $gallery)) {
echo "Slideshow was forund";
} else if (preg_match("/^\[nggallery/", $gallery)) {
echo "Gallery was found";
} else {
echo "No Match found - No Meta Data available";
}
所做的更改:
[
需要作为其元字符进行转义,要使用的转义字符为\\
。 而且preg_match期望其第一个参数(regex)在合适的char之间定界。 因此,您可以执行以下操作:
preg_match("/^\[slideshow/", $gallery)
要么
preg_match("|^\[slideshow|", $gallery)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.