PHP正则表达式,如何匹配包含[符号?

Mar*_*rty 1 php regex preg-match

我整个上午都试图寻找这个答案,但没有运气,我想做的就是匹配[幻灯片或[包括[括号..

代码如下.

$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"; 
}
Run Code Online (Sandbox Code Playgroud)

我使用的正则表达式,我会像这样工作.搜索字符串的开头,并使用/将转义[从被用作正则表达式的一部分并成为搜索的一部分,

正则表达式不是我的事情....虽然我做的阅读越多,它就会变得更加清晰......

Res*_*uum 7

转义字符\不是/.此外,您需要使用与正则表达式开头相同的分隔符结束正则表达式.所以你的代码需要是这样的:

preg_match("|^\[slideshow|", $gallery)
Run Code Online (Sandbox Code Playgroud)

  • 虽然两个答案都是正确的,但这个答案可以更好地解释需要改变的内容和原因. (2认同)