在 PHP 中使用 preg_replace 时如何获得匹配项?
我试图抓住几个单词的大写字母并将它们包装在 span 标签中。 我使用 preg_replace 进行提取和包装,但它没有输出任何内容。
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
I am trying to grab the capital letters of a couple of words and wrap them in span tags. I am using preg_replace for extract and wrapping purposes, but it's not outputting anything.
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要将模式放在括号
/([AZ])/
中,如下所示:You need to put the pattern in parentheses
/([A-Z])/
, like this:\0
还将匹配整个匹配表达式,而无需使用括号进行显式捕获。与往常一样,您可以转到 php.net/preg_replace 或 php.net/<任何搜索词> 快速搜索文档。 引用文档:
\0
will also match the entire matched expression without doing an explicit capture using parenthesis.As always, you can go to php.net/preg_replace or php.net/<whatever search term> to search the documentation quickly. Quoth the documentation:
来自 php.net 上的 preg_replace 文档:
请参阅 Flubba 的示例。
From the preg_replace documentation on php.net:
See Flubba's example.
在您想要的捕获周围使用括号。
Use parentheses around your desired capture.