提问人:Polsonby 提问时间:8/5/2008 最后编辑:Andy LesterPolsonby 更新时间:2/10/2017 访问量:22053
在 PHP 中使用 preg_replace 时,我怎样才能获得比赛?
How can I get at the matches when using preg_replace in PHP?
问:
我正在尝试抓取几个单词的大写字母并将它们包装在 span 标签中。我将 preg_replace 用于提取和包装目的,但它没有输出任何东西。
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
答:
59赞
Polsonby
8/5/2008
#1
你需要把模式放在括号里,像这样:/([A-Z])/
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
评论
8赞
Bill the Lizard
6/24/2009
@Gumbo:回答你自己的问题是完全可以的,甚至是鼓励的,只要这个问题不是网站上另一个问题的重复。
0赞
rinogo
12/21/2019
替换字符串中的位是我需要的。谢谢!$1
8赞
Wedge
8/5/2008
#2
替换可能包含以下参考文献 形式 \n 或(从 PHP 4.0.4 开始)$n, 后一种形式是 首选一个。每一个这样的参考 将被捕获的文本替换 按第 n 个括号内的模式。
请参阅 Flubba 的示例。
32赞
John Douthat
8/28/2008
#3
\0
还将匹配整个匹配的表达式,而无需使用括号进行显式捕获。
preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)
与往常一样,您可以转到 php.net/preg_replace 或 php.net/<任何搜索词>快速搜索文档。引用文档:
\0 或 $0 表示与整个模式匹配的文本。
5赞
Dinah
6/24/2009
#4
在所需的捕获周围使用括号。
上一个:IE中的HTML解析器问题
下一个:抓取同级标签并关联为父子关系
评论