【发布时间】:2011-01-18 21:55:32
【问题描述】:
我想用这样的 div 文本替换类:
这个:<div class="grid-flags" >FOO</div>
变成:<div class="iconFoo" ></div>
所以类被更改为“图标”。 ucfirst(strtolower(FOO)) 和文本被删除
测试 HTML
<div class="grid-flags" >FOO</div>
图案
'/class=\"grid-flags\" \>(FOO|BAR|BAZ)/e'
替换
'class="icon'.ucfirst(strtolower($1).'"'
这是我尝试了数百个替换字符串的一个示例。我读到 /e 修饰符会评估 PHP 代码,但我不明白它在我的情况下是如何工作的,因为我需要在类名周围加上双引号,所以我不知道用哪种方法来做这件事。
我尝试了 backref 的变体,例如。 strtolower('$1'), strtolower('\1'), strtolower('{$1}')
我尝试了单引号和双引号以及各种转义等,但没有任何效果。
我什至没有运气尝试过 preg_replace_callback()
function callback($matches){
return 'class="icon"'.ucfirst(strtolower($matches[0])).'"';
}
【问题讨论】:
标签: php regex replace preg-replace