Php找到带正则表达式的字符串

时间:2012-04-13 14:25:07

标签: php regex

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

我有一个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 /))

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

3 个答案:

答案 0 :(得分:29)

尝试捕获它:

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

现在$m是一个数组:

0 => [gallery::/name/of/the/folder/]
1 => /name/of/the/folder/

答案 1 :(得分:2)

将正则表达式更改为

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

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

答案 2 :(得分:-1)

if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}