Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Программирование |
![]() ![]() |
Alibek B. Member Откуда: Сообщений: 3793 |
Настраиваю редактор, в редакторе есть возможность автоматической навигации по функциям, описание которых задается регулярным выражением. Текст в редакторе, например, такой: function debug($mode=null); // Режим отладки function pmode($mode=null); // Режим постоянных соединений (пул соединений) final public function __construct() { ... } Задаю такой шаблон: ^[ \t]*(final |abstract )?(public |private |protected )?(static )?function[ \t].*\(.*?\) Но вторая строка в этот шаблон попадает целиком (с комментарием), хотя я вроде бы для выражения внутри скобок указываю ленивый квантификатор. |
26 сен 19, 10:43 [21979533] Ответить | Цитировать Сообщить модератору |
Anatoly Moskovsky Member Откуда: Odessa Сообщений: 6612 |
Все правильно. Потому что сначала .* матчит по максимуму включая все группы скобок кроме последней, а потом \(.*?\) матчит последнюю группу скобок. Так что нужен еще один "?". .*?\(.*?\) Но лучше уже просто написать матч для имени функции вместо .* |
||
26 сен 19, 17:51 [21980168] Ответить | Цитировать Сообщить модератору |
Alibek B. Member Откуда: Сообщений: 3793 |
Понял, спасибо. |
26 сен 19, 19:31 [21980250] Ответить | Цитировать Сообщить модератору |
Все форумы / Программирование | ![]() |