Измените синтаксис переменной PHP с объекта на массив в Notepad++ с помощью поиска/замены

Измените синтаксис переменной PHP с объекта на массив в Notepad++ с помощью поиска/замены

Мне нужно заменить синтаксис доступа к свойствам одномерного объекта на синтаксис доступа к элементам массива.

Примеры:

  • $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), но в данном контексте это не имело бы значения, если бы вы это делали.

Связанный контент