31

我已经阅读了多个关于正则表达式的教程,但它不会留在我的脑海中。我永远无法让我的模式发挥作用。希望有人可以提供帮助。

我有一个 php 变量 ($content),我需要在其中找到一个看起来像这样的特定模式

[画廊::名称/的/文件夹/]

我想搜索:

- starting with "[gallery::"
- any other character (variable length)
- ending with "]"

到目前为止,在 PHP 中我有:

   preg_match('/\[gallery\:/', $content, $matches, PREG_OFFSET_CAPTURE);

我可以找到[画廊:但就是这样。我希望能够找到其余的(:name/of/the/folder/])

任何帮助表示赞赏!谢谢!

4

2 回答 2

45

尝试捕获它:

preg_match("/\[gallery::(.*?)]/", $content, $m);

现在$m是一个数组:

0 => [gallery::/name/of/the/folder/]
1 => /name/of/the/folder/
于 2012-04-13T14:27:44.827 回答
2

将您的正则表达式更改为

'/\[gallery::([A-Za-z\/]+)\]/'

由于我将文件夹/路径部分放在括号中,因此您应该从中获取一个捕获组。

于 2012-04-13T14:27:56.840 回答