我的变量$ randomWiki包含以下字符串:
[...]"wgNamespaceNumber":0,"wgPageName":"Busfahrer","wgTitle":"Busfahrer","wgCurRevisionId"[...]
并希望从中获取“wgTitle”。 我构建了以下正则表达式:
preg_match_all("/\"wgTitle\":\"(.*?)\"/", $randomWiki);
var_dump给了我bool(false)。 我已经使用在线工具检查了正则表达式并且它有效。
任何建议?
答案 0 :(得分:2)
您应该使用以下代码:
$str = '"wgNamespaceNumber":0,"wgPageName":"Busfahrer","wgTitle":"Busfahrer","wgCurRevisionId"';
preg_match_all("#\"wgTitle\":\"([^\"]*)\"#", $str, $res);
var_dump($res);
preg_match_all 接受3个参数。
答案 1 :(得分:0)
试试这个,
\"wgTitle\":\"(\w)*\"
答案 2 :(得分:0)
解决方案肯定断言 ?=
:
$str = '"wgNamespaceNumber":0,"wgPageName":"Busfahrer","wgTitle":"Busfahrer","wgCurRevisionId"';
// it matches the word followed by separator ," - which is the boundary of the next key
preg_match_all("/\"wgTitle\":\"(\w+)\"(?=,\")/iu", $str, $matches);
var_dump($matches[1]);
// the output:
array(1) {
[0]=>
string(9) "Busfahrer"
}