preg_match_all("[[Train]]<p />[[Plane]]<p />[[Crane Sane]]<p />[[Slain (derp)|Slained]]",$regex,$out);
我想提取: -
[[Slain(derp)| Slained]]
这是我到目前为止: -
$regex = "/\[\[.+?\\|.+?\]\]/";
答案 0 :(得分:1)
我相信这会有用,只能捕捉到你想要的东西:
<?php
$test_string = "[[Train]]<p />[[Plane]]<p />[[Crane Sane]]<p />[[Slain (derp)|Slained]]";
$regex = "/\[\[[^[]+\|[^\]]+\]\]/";
preg_match_all($regex,$test_string,$out);
print_r($out);
?>
答案 1 :(得分:0)
尝试:
$regex = "/(\[\[[^\\]]+?\\|[^\\]]+?\]\])/";
preg_match($regex,"[[Train]]<p />[[Plane]]<p />[[Crane Sane]]<p />[[Slain (derp)|Slained]]",$out);
print_r($out[1]);
答案 2 :(得分:0)
您的正则表达式将从[[
[[Train
开始,然后将所有字符啜饮到下一个管道,恰好位于另一个[[
... ]]
完全建构。作为第一个近似值,您应该在看到管道之前排除所有关闭括号。
"\[\[[^]]+\\|[^[]+\]\]"