正则表达式:替换升华文本中的一些php代码
我是一个regex的初学者,我想用search和replace替换Sublime Text 3编辑器中的一些代码。 下面是我试图替换的一个示例: 要查找的php代码片段:正则表达式:替换升华文本中的一些php代码,php,regex,search,replace,sublimetext3,Php,Regex,Search,Replace,Sublimetext3,我是一个regex的初学者,我想用search和replace替换Sublime Text 3编辑器中的一些代码。 下面是我试图替换的一个示例: 要查找的php代码片段: self::$_config::$_params['myKey1']['myKey2']['myKey3']['myKeyn'] 并将其替换为: self::$_config::getParam('myKey1.myKey2.myKey3.myKeyn') 可以在数组中定义一个或多个键 我的“搜索”正则表达式是: sel
self::$_config::$_params['myKey1']['myKey2']['myKey3']['myKeyn']
并将其替换为:
self::$_config::getParam('myKey1.myKey2.myKey3.myKeyn')
可以在数组中定义一个或多个键
我的“搜索”正则表达式是:
self::\$_config::\$_params\['([a-zA-Z0-9]+)(?:(('\]\[')([a-zA-Z0-9]+))*)'\]
我正在寻找一个“替换”解决方案来检索所有键,以便使用重复捕获组$2按预期格式化代码(getParam()方法而不是$_params属性):我不确定这样做是否可能,也不确定是否有最合适的方法能成功。
显然,我对$2有一个警告:“一个重复的捕获组将只捕获最后一次迭代”
谢谢大家的回答。这些过程不可能一步到位。您只需执行至少两个查找/替换函数
- 在
之后查找所有连续出现的self::$\u config::$\u params
并将其替换为\]\['
- 然后在
和语句末尾分别查找$\u params
和\['
,以\']
和getParam('
')替换它们。
getParam('.')
\z
执行最上面的步骤,并用getParam('.')
方法替换所有需要的文件(这样就不会成为一行程序!)
((self::\$_config::)\$_params\['(?=[\s\S]*(getParam\('))|\G(?!\A))(\w+)(?|'\](?!\s*\[)(?=[\s\S]*('\)))|'\]\['(?=[^.]*+(\.)))
\2\3\4\5
getParam('.')
我必须在我的编辑器中用搜索和替换替换许多文件中的这些代码。非常感谢,给我留下了深刻的印象!我必须在演示中用几个高级概念理解所有正则表达式。感谢您的ST3步骤。
\2\3\4\5