这个preg_match是如何工作的?

时间:2012-08-30 12:49:41

标签: preg-match

我正在查看一些

的代码
preg_match('/\[youtube ([[:print:]]+)\]/', $content, $matches)

$content可以是* http://www.youtube.com/watch?v = some_video *

等链接

我可以看到它正在过滤youtube视频,但我不知道它是如何做到的。更具体地说,[:print:]的作用是什么?

2 个答案:

答案 0 :(得分:1)

以下是框图中的实验。

/\[youtube ([[:print:]]+)\]/
│ │        │ │          │
│ │        │ │          └─ close the matched string
│ │        │ └──────────── start the character class
│ │        └────────────── open the matched string
│ └─────────────────────── literal square bracket
└───────────────────────── start the regexp

重要的一点是括号内的部分。这与您的编程语言相匹配,可以重新用作变量,以便您可以构建替换URL。

答案 1 :(得分:0)

你的答案在这里:http://www.php.net/manual/en/function.preg-match-all.php#81559

“[:print:] - 打印字符,包括空格”