我有一个包含多个WIKI类型标签的字符串。例如[[TAG:4567]]
。我需要从字符串中识别/提取所有标签,以便稍后进行替换。
例如,对于此字符串:
this is a test [[TITLE]] of more test [[LINK:27654]]
我想要一个数组:
0: [[TITLE]]
1: [[LINK:27654]]
我认为PHP preg_match可能有效,但它在regexp匹配之间返回了一大堆额外的字符。但我认为它只适用于主题字符串中的一个匹配。这就是我试过的:
$subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
preg_match( '/(?<=\[\[)(.*)(?=\]\])/', $subject, $matches );
print_r($matches);
但它给了我:
Array (
[0] => TITLE]] of more test [[LINK:27654
[1] => TITLE]] of more test [[LINK:27654
)
这不是我需要的。有没有一种简单的方法来提取标签?我真的想避免遍历字符串并手动提取。
答案 0 :(得分:1)
看起来更简单(也是正确的)正则表达式来解决这个问题
/\[\[(.*?)\]\]/
答案 1 :(得分:0)
<?php
ini_set('display_errors', 1);
$subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
preg_match_all('/\[\[.*?\]\]/', $subject, $matches );
print_r($matches);