正则表达式试图在PHP中获得匹配

时间:2013-12-18 01:51:38

标签: php regex

我正在尝试为包含[[Title#Night|Anchor]]或仅[[Title|Anchor]]的字符串制作正则表达式模式,并提取TitleAnchor。基本上是两个变量,第一部分在[[ and |之间,第二部分在| and ]]之间,无论内部是什么类型的字符(不包括\ n,\ r)。

我曾尝试过编写不同的模式而没有像我想的那样工作。代码可以是seen here,其中包含我需要应用的示例内容。

\[\[(.*?)|(.*?)\]\]

2 个答案:

答案 0 :(得分:0)

以下内容应适用于字母数字条目,取决于您希望Title或Anchor包含的内容。

\[\[([a-zA-Z0-9#]*)\|([a-zA-Z0-9]*)\]\]

答案 1 :(得分:0)

这可以帮到你:

$str = ' [[Title#Night|Anchor]] ';
preg_match('/\[\[([\s\S]*?)\]\]/',$str,$match);
print_r(explode('|',$match[1]));

更新

preg_match('/\[\[([\s\S]*?)\|([\s\S]*?)\]\]/',$str,$match);
print_r($match);

更新2:

preg_match('/\[\[(.*?)\|(.*?)\]\]/',$str,$match);
print_r($match);

更新3:

preg_match('/\[\[([^|\n\r]*)\|([^\]\n\r]*)\]\]/',$str,$match);
print_r($match);