php - 将 abcd 转换为 (a(b(c(d)))) 的正则表达式

标签 php regex preg-replace pcre

我正在使用 PHP 的 preg_replace,并尝试转换字符串

abcd

进入

(a(b(c(d))))

这是我得到的最好的:

preg_replace('/.(?=(.*$))/', '$0($1)', 'abcd');
// a(bcd)b(cd)c(d)d()

甚至可以使用正则表达式吗?

编辑 我刚刚在 PCRE 规范中发现了这一点:Replacements are not subject to re-matching,所以我原来的方法行不通。我想保留所有正则表达式,因为在我的实际用例中有一些更复杂的匹配逻辑。

最佳答案

怎么样:

preg_replace('/./s', '($0', 'abcd') . str_repeat(')', strlen('abcd'));

?

(这算作“使用正则表达式”吗?)

关于php - 将 abcd 转换为 (a(b(c(d)))) 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647412/

相关文章:

php - php中的多个条件和赋值

php - 如何为 TinyMCE 下载和配置 phpimage

php正则表达式删除mso标签

php - preg_replace 网址但不是图像

php - 替换某些字符同时允许 unicode (PHP)

php - Foreach 循环仅存储多维数组的第一个索引 |拉维尔

php - WooCommerce Checkout 必填字段与计费城市字段有关

用于向字符串中的伪 img 添加属性的 javascript 正则表达式

ruby - 为什么这个正则表达式不能正常工作?

php - 如何在 Laravel 5.4 中验证文件名