Найти и заменить на регулярное выражение, определив начало и конец строки - PullRequest
0 голосов
/ 18 февраля 2020

Как мне заменить в PhpStorm (это не важно, я думаю) все вхождения (выбор строки, которая начинается с {!! и заканчивается !!}):

{!! $arr['my.key.1234'] !!} на {!! $arr('my.key.1234') !!} (обратите внимание на скобки)

Я пытался выбрать ключ с помощью этого регулярного выражения: \{\!\! \$arr\[.*.] !!}, который работает, но как мне теперь заменить его?

РЕДАКТИРОВАТЬ:

I хочу только выбрать ключ массива, который является переменным, поэтому мое регулярное выражение не работает - он выбирает целую строку.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

В PhpStorm откройте диалоговое окно замены и убедитесь, что вы установили флажок Regex.

Для поиска вы можете использовать:

(\{!!\s*\$\w+)\[('[\w\.]+')\](\s*!!\})

Это захватывает 3 части, которые вы хочу сохранить. Затем вы заменяете скобки и используете $1, $2 и $3, чтобы вставить исходный контент в новые скобки.

$1($2)$3

Снимок экрана, показывающий, как это сделать:

enter image description here

1 голос
/ 18 февраля 2020

Подобный поиск можно выполнить с помощью phpstorm:

  • (\{\!\!.+\$.+)(\[) заменить на $1(
  • (])(.*\!\!}$) заменить на )$2

Не забудьте установить флажок regex на панели инструментов поиска.

...