【发布时间】:2020-10-10 03:45:45
【问题描述】:
我想将我的 php 脚本更新为一个项目(全局)并更改数组(元素);到[元素];
使用 atom 我已经为数组的初始化运行了更新,并且已经更改了 array();到 [];但是这只是处理空数组初始化代码。
现在的挑战是将实际上包含元素的数组从 () 更改为 []
例如,数组可以有多种格式
array('content',number content,'content');
或
array(
'content',
array(
number content,'content'
)
);
或任何级别数量的变化。
我已经这样分解了,但我不知道如何做正则表达式。,
找到每一个出现的数组( - 替换为 [
找到该数组的关联关闭); - 替换为 ];
找到每个数组(在另一个数组中( - 替换为 [
找到另一个数组中的每个数组的关联关闭);要不就 ), - 用。。。来代替 ];或],
我认为应该涵盖它.... 正则表达式是不可能的吗?
谢谢
【问题讨论】:
-
这至少可以说是一个挑战。 Atom 和其他现代编辑器已经内置了特定于语言的智能感知功能,这些功能在这里可能会派上用场,但单独使用 Regexp 来实现要么非常困难,要么容易出错。
-
您可以尝试重复应用以下正则表达式:
array\(([^()]*)\),替换字符串:array[$1]。它将从内到外工作。但前提是您的数组元素的任何字符串中都没有(或)。 -
嗯,我的感觉是,即使有一些错误导致,当发现时单独修复这些比手动更改所有这些更容易。至少正则表达式可以完成大部分工作,然后我们需要在此之后进行更正。
-
根据 regex101 站点将匹配 array(1,'goat') 和这个数组的内部数组('happy',36, array('sad',25) );然后一旦内部改变,然后你再次运行它并改变外部......这可能工作得很好......
-
但是第一个错误...它还匹配 is_array($value) 和其他数组函数,例如 in_array 也不好,我该如何排除该函数,我应该排除任何带有 _ 前面的数组或者只是前面所有数组中的任何内容
标签: php arrays atom-editor