我正在尝试使用uppcase副本更改preg_replace
的匹配值,但似乎无法弄清楚...
我试过了:
preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name=" . strtoupper($1) . "]" ,$str )
和
preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name={strtoupper($1)}]" ,$str )
但没有工作。
非常感谢任何帮助。
答案 0 :(得分:2)
您可以将e
修饰符用作:
preg_replace("#\[name=((?:keywords)|(?:description))\]#ise", "'[name='.strtoupper('\\1'). ']'" ,$str )
答案 1 :(得分:1)
您可以使用回调函数和preg_replace_callback
。
E.g。 (另):
preg_replace(
"#\[name=((?:keywords)|(?:description))\]#is",
create_function('$matches', 'return "[name=" . strtoupper($matches[1]) . "]"'),
$str
)