我正在搜索的文字包含vars (= OR :) { (the stuff I want }
在=和{之间只能是空格,可能包含一个新行。
我将把它变成PHP中的键/值数组。
以下是我正在尝试的不会导致任何匹配的内容:
$str = "vars = {'first' : 'joe', 'last' : 'smith' };";
preg_match("/^vars\s=\s\{(.*)\}/",$str, $matches);
echo $matches[0];
另一个应匹配的字符串:
$str = "vars : {'first' : 'joe', 'last' : 'smith' };";
答案 0 :(得分:1)
也许你可以抓住{}中的所有内容,然后让JSON解析器为你完成剩下的工作。
$str = 'vars = {"first" : "joe", "last" : "smith" };';
preg_match("/\{.*\}/",$str, $matches);
var_dump(json_decode($matches[0]));
object(stdClass)#1 (2) {
["first"]=>
string(3) "joe"
["last"]=>
string(5) "smith"
}
此方法仅适用于有效的JSON ofc。
答案 1 :(得分:0)
要匹配它,请使用:
preg_match_all('/^vars\s[=:]\s{(.*)};$/m', $str, $matches, PREG_PATTERN_ORDER);
$matches = $matches[0];