【发布时间】:2012-02-05 14:41:49
【问题描述】:
我试图了解preg_match_all() 的工作原理,在查看 php.net 站点上的文档时,我看到了一些示例,但对作为模式参数发送的字符串感到困惑。那里有一个非常彻底,清晰的解释吗?例如,我不明白这个例子中的模式是什么意思:
preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x",
"Call 555-1212 or 1-800-555-1212", $phones);
或者这个:
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
我上过关于 PHP 的介绍性课程,但从未见过这样的事情。一些澄清将不胜感激。
谢谢!
【问题讨论】:
-
查看regular-expressions.info 以获得更好的教程,并查看stackoverflow.com/questions/89718/… -and- stackoverflow.com/questions/32282/regex-testing-tools 以获得一些工具来可视化这些表达式。
标签: php regex preg-match-all