使用搜索/替换在 Notepad++ 中将 PHP 变量语法从对象更改为数组

使用搜索/替换在 Notepad++ 中将 PHP 变量语法从对象更改为数组

我需要将一维对象属性访问语法替换为数组元素访问语法

例子:

  • $variable -> child
  • $variable->child

都应转换为:

$variable['child']

答案1

找什么:

\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*) *-> *([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)

用。。。来代替

$\1['\2']

当然,将搜索模式设为“正则表达式”。这里,正则表达式表示PHP 变量[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

答案2

寻找:(\$\w+) *-> *(\w+)

代替:$1['$2']

  • (\$\w+)捕获文字美元符号,然后捕获一个或多个 [a-zA-Z0-9_] 字符
  • *-> * 匹配零个或多个空格,然后是连字符,然后是大于号,然后是零个或多个空格
  • (\w+) 捕获一个或多个 [a-zA-Z0-9_] 字符

然后使用$1$2用数组语法生成所需的动态替换。

正如在另一个答案下所评论的那样,寻找一个或多个文字美元符号(\$+)是没有意义的,因为应该只有一个——我希望您没有使用“变量变量”($$variable),但如果您这样做了,在这种情况下就无关紧要了。

相关内容