Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式查找双括号_Php_Regex_Preg Match All - Fatal编程技术网

php正则表达式查找双括号

php正则表达式查找双括号,php,regex,preg-match-all,Php,Regex,Preg Match All,我已经提交了一些文本,它将包含双括号中的单词,但也可能只有单括号中的单词。但我只想要两个括号里的 例如: [[test]][test1][[test2]][test5][[test3]] 在同一字符串中使用其他单词etc 例如: 快速的棕色狐狸跳过懒惰的狗 现在,我有一个preg_match_所有的: (preg_match_all('/\\[.*?\\]\\]/is',$str,$match)) 但是,它也拉单支架的。。。我在regex很烂 有没有人对我如何只拉双支架有什么意见 谢谢 改用这

我已经提交了一些文本,它将包含双括号中的单词,但也可能只有单括号中的单词。但我只想要两个括号里的

例如:

[[test]][test1][[test2]][test5][[test3]]

在同一字符串中使用其他单词etc

例如:

快速的棕色狐狸跳过懒惰的狗

现在,我有一个preg_match_所有的:

(preg_match_all('/\\[.*?\\]\\]/is',$str,$match))
但是,它也拉单支架的。。。我在regex很烂

有没有人对我如何只拉双支架有什么意见

谢谢

改用这个

\[{2}.*?\]{2}
演示:

{2}需要出现两次。您只检查表达式中的一个括号

PHP演示:

PHP用法:

$str = '[[test]] [test1] [[test2]] [test5] [[test3]]';
preg_match_all('/\[{2}(.*?)\]{2}/is',$str,$match);
print_r($match[1]);
输出:

Array
(
    [0] => test
    [1] => test2
    [2] => test3
)
还要注意,我在PHP演示中捕获了双括号中的值,不确定这是否是您想要的

\[{2}.*?\]{2}
演示:

{2}需要出现两次。您只检查表达式中的一个括号

PHP演示:

PHP用法:

$str = '[[test]] [test1] [[test2]] [test5] [[test3]]';
preg_match_all('/\[{2}(.*?)\]{2}/is',$str,$match);
print_r($match[1]);
输出:

Array
(
    [0] => test
    [1] => test2
    [2] => test3
)
还要注意,我在PHP演示中捕获了双括号中的值,不确定这是否是您想要的