PHP正则表达式识别多个令牌

时间:2011-07-26 16:41:18

标签: php regex

我需要在PHP中创建一个正则表达式,它将在一段文本中标识以下标记:

[video:1]
[video:2]

我正在使用的代码是

preg_match("/\[video:[12]{1}\]/", $text, $matches);

认为我可以在'[video:'然后']'后面有一个1或2的字符。我遇到的问题是,如果文本中有两个令牌,它将无法识别第二个令牌。如果它是第一个,它将识别一个,如果两个都在文本中,则识别第二个。

如何在文本部分中识别这两个令牌?

感谢。

1 个答案:

答案 0 :(得分:4)

您需要使用preg_match_all()进行全局搜索和捕获。

当您需要匹配文字字符时,还要确保正确转义正则表达式语法。

/\[video:[12]\]/

注意:我也删除了量词,因为您只是匹配一个12