繁体   English   中英

PHP正则表达式,如何匹配包含[符号的第一部分?

[英]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.

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