【问题标题】:parsing string for all matching patterns in php解析php中所有匹配模式的字符串
【发布时间】:2015-06-22 22:13:37
【问题描述】:
我想匹配[[WHATEVER]]等所有模式
这两个括号内的文字可以是大写或小写,可以以空格开头或以空格结尾,并且可以由空格分隔的两个或多个单词组成
$string = "The [[QUICK]] brown [[FOX]] jumped over [[whatever]]";
parse $string; //I would like an result to be like array
array( 0 => "[[QUICK]]", 1 => "[[FOX]]", 2 => "[[whatever]]")
【问题讨论】:
标签:
php
arrays
regex
string
parsing
【解决方案1】:
你可以像这样匹配它们:
$re = "/\\[{2}.*?\\]{2}/";
$str = "The [[QUICK]] brown [[FOX]] jumped over [[whatever]]";
preg_match_all($re, $str, $matches);
print_r($matches[0]);
sample program 的输出:
Array
(
[0] => [[QUICK]]
[1] => [[FOX]]
[2] => [[whatever]]
)
【解决方案2】:
\[\[[^\]]*\]\]
应该这样做。
See demo
$re = "/\\[\\[[^\\]]*\\]\\]/im";
$str = "The [[QUICK]] brown [[FOX]] jumped over [[whatever]]";
preg_match_all($re, $str, $matches);