gpt4 book ai didi

PHP正则表达式将嵌套()替换为[]

转载 作者:行者123 更新时间:2023-12-03 23:05:05 25 4
gpt4 key购买 nike

我正在尝试匹配一个字符串,请参阅示例,以便将嵌套括号 () 替换为 [],以免在其他地方破坏解析器。在这种情况下,我想将 $myStr 替换为“Arman; Dario (10040 Druento (Turin), IT)”...

提前致谢!

蒙特

{x:

  $myStr = "Arman; Dario (10040 Druento (Turin), IT)";
$pattern = "/(\()([a-z,A-Z0-9_\&\/\'\-\,\;\:\.\s^\)]+)(\))/";
if (preg_match_all($pattern,$myStr,$matches))
{
print_r($matches);
}

显然,我还需要切换match_all来替换。

总结一下:

输入

$myStr = "Arman; Dario (10040 Druento (Turin), IT)";

输出

$myStr = "Arman; Dario (10040 Druento [Turin], IT)";

最佳答案

您无法使用正则表达式可靠地完成此操作。如果您无论如何选择使用此方法,答案取决于您愿意对输入做出什么假设。例如,如果您愿意假设可以替换最里面的括号,那么答案很简单:

preg_replace('!\(([^()]*)\)!', '{$1}', $input);

如果您专门寻找嵌套括号,请尝试:

preg_replace('!\(([^()]*)\(([^()]*)\)([^()]*)\)!', '($1{$2}$3)', $input);

关于PHP正则表达式将嵌套()替换为[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com