Regex для {* или *} (обновление PhpStorm для Laravel 5.7) - PullRequest
0 голосов
/ 03 февраля 2019

Я обновляюсь до Laravel 5.7, и как часть этого мне нужно обновить все or в Blade до ??, где бы они ни были заключены в фигурные скобки ({{ }} или {!! !!}).Я пытаюсь использовать Regex в PhpStorm, чтобы найти все экземпляры этого (например, {*or*}, где * может быть любым количеством любых символов).

Как бы я это сделал?

Я попробовал это сам, но я новичок в Regex, и моя попытка, вероятно, патетически плоха:

/{[^!][or]}/

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Я обнаружил, что следующее решение близко к решению для этого варианта использования (может быть немного подправлено по мере необходимости):

\{(.*)\bor\b(.*)\}

например, чтобы просто соответствовать double {{, вы можете использовать:

\{\{(.*)\bor\b(.*)\}\}

(в PHPStorm вам может потребоваться установить флажок фильтра с надписью «Кроме комментариев»)

Не работает идеально, поэтому, если у кого-то есть лучшее решение, пожалуйста, пишите!

0 голосов
/ 04 февраля 2019

Я бы не стал использовать регулярное выражение для достижения этой цели, в основном из-за причин, изложенных в этой статье, которая немного углубляется в теорию компьютеров.В основном регулярные выражения не могут «запомнить» контекстные открывающие теги, такие как {{или {!!соединить их с конечным тегом;регулярное выражение, которое соответствует тому, что вы пытаетесь сделать (поиск {{что-то здесь}} или {!! что-то здесь тоже !!} также будет соответствовать этому {{что-то не так !!}. Тем не менее, вы можете написать свойсобственный конвертер, который мог бы поддерживать этот контекст или проходить тяжелую работу по ручному выполнению этого. Вы также можете провести некоторое исследование, чтобы выяснить, сделал ли это кто-то еще. Однако регулярное выражение, скорее всего, неправильноеинструмент для работы.

...