Заменить в строке указанными c исключениями слова - PullRequest
0 голосов
/ 14 января 2020

Я хочу sh удалить классы из свойств классов в моем PHP проекте. Строка, которую я хочу найти и заменить, выглядит следующим образом: private Selector $Selector; Имейте в виду, что класс (в данном случае «Селектор») является переменным.

Я уже сам пытался найти решение, однако этот шаблон также соответствует private function sendEventRelayMessage( Tracker $

find private (.*?) \$\b

replace private \$

1 Ответ

1 голос
/ 14 января 2020

Вам нужно более конкретное c регулярное выражение. Если мы следуем правилам PHP для имени класса , это дает нам довольно хорошее регулярное выражение для проверки имени класса. Все, что вам нужно, это удалить зарезервированное слово, и вы сами нашли решение.

Я нашел это регулярное выражение , которое делает то, что вы ищете

private ((?!function)[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]+) .+

Регулярное выражение будет искать ключевое слово private, за которым следует пробел и любые символы, которые являются действительными символами имени класса. Он отфильтровывает ключевое слово function (отрицательный взгляд), затем сопоставляет пробелы и все, что после этого.

Вот более полное объяснение того, как работает регулярное выражение.

Regular expression visualization

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...