php 正则表达式查找双括号
php regex finding double brackets
我有一些提交的文本,它会包含双括号中的单词,但也可以有一些只包含在单括号中的单词。但我只想要双括号中的那些。
示例:
[[test]] [test1] [[test2]] [test5] [[test3]]
在同一个字符串中有其他词等...
例如:
[[test]] the quick [test1] brown [[test2]] fox [[test3]] jumped [mytest] over the lazy [[test4]] dog
现在我有一个 preg_match_all 有:
(preg_match_all('/\[.*?\]\]/is',$str,$match))
但是,它也会拉出单括号...我不擅长正则表达式。
有人对我如何只拉双括号有任何意见吗?
谢谢!
改用这个。
\[{2}.*?\]{2}
演示:https://regex101.com/r/bW0mM6/1
{2}
需要出现 2 次。您只用表达式检查一个括号。
PHP 演示:http://sandbox.onlinephpfunctions.com/code/2f16f7e102d822e31dc128a384f8090181c7461d
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 演示中捕获了双括号中的值,不确定这是否是您想要的。
我有一些提交的文本,它会包含双括号中的单词,但也可以有一些只包含在单括号中的单词。但我只想要双括号中的那些。
示例:
[[test]] [test1] [[test2]] [test5] [[test3]]
在同一个字符串中有其他词等...
例如:
[[test]] the quick [test1] brown [[test2]] fox [[test3]] jumped [mytest] over the lazy [[test4]] dog
现在我有一个 preg_match_all 有:
(preg_match_all('/\[.*?\]\]/is',$str,$match))
但是,它也会拉出单括号...我不擅长正则表达式。
有人对我如何只拉双括号有任何意见吗?
谢谢!
改用这个。
\[{2}.*?\]{2}
演示:https://regex101.com/r/bW0mM6/1
{2}
需要出现 2 次。您只用表达式检查一个括号。
PHP 演示:http://sandbox.onlinephpfunctions.com/code/2f16f7e102d822e31dc128a384f8090181c7461d
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 演示中捕获了双括号中的值,不确定这是否是您想要的。