繁体   English   中英

如何替换特定字符,例如php中的括号

[英]How to replace specific character such as bracket in php

在过去的三天里,我一直在尝试在自己的定界符中替换括号。 就像是

(  ( [take] function ( [/take] (

看起来像

[take] function [ [/take]

不影响[take][/take]分隔符之外的方括号

我努力了

preg_replace('/[^\[take\]]([)[^\[\take\]]/', '[', $string);

您需要使用正则表达式:

$string = "( ( [take] function( [/take] (";
$result = preg_replace_callback(
    "/(\[take\])(.*?)(\[\/take\])/",
    function($m) {return $m[1] . str_replace("(", "[", $m[2]) . $m[3];},
    $string
);
echo $result;

preg_replace_callback()允许您在比赛中执行回调函数。 在这种情况下,我们使用匹配组(在括号内)来隔离标签之间的文本,然后在回调中用括号将括号替换。

如果间距一致,则:

$result = str_replace('function ()', 'function []', '( ( function () (');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM