Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в регулярном выражении / 3 сообщений из 3, страница 1 из 1
26.09.2019, 10:43
    #39867210
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в регулярном выражении
Настраиваю редактор, в редакторе есть возможность автоматической навигации по функциям, описание которых задается регулярным выражением.
Текст в редакторе, например, такой:
Код: php
1.
2.
3.
4.
5.
6.
	function debug($mode=null);                                              // Режим отладки
	function pmode($mode=null);                                              // Режим постоянных соединений (пул соединений)
	final public function __construct()
	{
		...
	}



Задаю такой шаблон:
Код: plaintext
^[ \t]*(final |abstract )?(public |private |protected )?(static )?function[ \t].*\(.*?\)

Но вторая строка в этот шаблон попадает целиком (с комментарием), хотя я вроде бы для выражения внутри скобок указываю ленивый квантификатор.
...
Рейтинг: 0 / 0
26.09.2019, 17:51
    #39867467
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в регулярном выражении
Alibek B.Но вторая строка в этот шаблон попадает целиком (с комментарием), хотя я вроде бы для выражения внутри скобок указываю ленивый квантификатор.
Все правильно.
Потому что сначала .* матчит по максимуму включая все группы скобок кроме последней, а потом \(.*?\) матчит последнюю группу скобок.

Так что нужен еще один "?".
Код: sql
1.
.*?\(.*?\)


Но лучше уже просто написать матч для имени функции вместо .*
...
Рейтинг: 0 / 0
26.09.2019, 19:31
    #39867516
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в регулярном выражении
Понял, спасибо.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в регулярном выражении / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]