07.08.2020 18:32
student
 
Цитата:
OlegON ну как-то не очень вариант...
я бы \[{0,1} заменил на \[? а так вполне себе нормально :)
и м.б. также заменил [0-9] на \d
т.е. в конечном виде

([A-Z]{3})\-(\d+)\[?([^\]]*)\]?\.htm
10.08.2020 16:05
OlegON
 
Убрал жадность и добавил вопросы вместо количества.

^([A-Z]{3})\-([\d]+)\[?(.+?)\]?\.htm$

вроде то, что надо, спасибо.
10.08.2020 16:12
OlegON
 
Эээ... Нет, работает именно
^([A-Z]{3})\-(\d+)\[?([^\]]*)\]?\.htm$
вариант с нежадным почему-то резко жаднеет на варианте
Код:
ORA-0034.htm
отжирая "4" в третий параметр.
10.08.2020 20:03
vdm
 
Если в ([^\]]*) звездочку поменять на плюс, то будет точно также отъедать символ.
10.08.2020 20:24
OlegON
 
логично, поскольку плюс подразумевает наличие символа... а как его ещё получить? откусить суффикс... а вот как нежадного уговорить непонятно...
10.08.2020 23:49
vdm
 
(.*?) и ([^\]]*) работают одинаково, группа заполняется.
Для чего тогда тут
Цитата:
OlegON Убрал жадность и добавил вопросы вместо количества.
^([A-Z]{3})\-([\d]+)\[?(.+?)\]?\.htm$
был использован + а не *. Чем плоха возможная пустая группа при *.
11.08.2020 06:59
OlegON
 
Цитата:
vdm Для чего
Просто ошибся :)
Действительно, вариант
^([A-Z]{3})\-([\d]+)\[?(.*?)\]?\.htm$
тоже работает, как надо.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.