Size: a a a

Regular Expressions

2021 January 14

DE

Denis Efremov in Regular Expressions
Artem Soldatenkov
не, ну работает же, че вы там все выебуетесь
Ну в тиндере тоже матчит )
источник

СД

Стас Донцов... in Regular Expressions
Я читаю про ELK, в составе ELK есть модуль Grok он занимается парсингом строк через регулярки.
Пример работы прост:

Для исходной строки:
55.3.244.1 GET /index.html 15824 0.043

Используется следующий шаблон:
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}

Где в кудрявых скобках "суб-регулярки" которые вставляются в "основную регулярку":
IP (?:%{IPV6}|%{IPV4})
WORD \b\w+\b
URIPATHPARAM %{URIPATH}(?:%{URIPARAM})?
NUMBER (?:%{BASE10NUM})

Я правильно понимаю что "суб-регулярки" просто хранятся в каких-то переменных в коде и при компиляции "основной регулярки" они подставляются в неё и уже скомпилируется регулярка где вместо названий суб-регулярок будут подставлены сами суб-регулярки?
источник

OM

Oleg Makarikhin in Regular Expressions
да
источник

OM

Oleg Makarikhin in Regular Expressions
кстати, обычные регулярки тоже так умеют
источник

СД

Стас Донцов... in Regular Expressions
Просто это так красиво: я иногда пишу длинную регулярку, а мог бы так её разбить и "собирать на лету"
источник

СД

Стас Донцов... in Regular Expressions
воооот
источник

СД

Стас Донцов... in Regular Expressions
Oleg Makarikhin
кстати, обычные регулярки тоже так умеют
а можно пример какой-то? я за этим как раз и пришел
источник

OM

Oleg Makarikhin in Regular Expressions
источник

СД

Стас Донцов... in Regular Expressions
ну простецкий какой-то, где одна "основная регулярка" использует две маленьких
источник

СД

Стас Донцов... in Regular Expressions
хм, ща посмотрю
источник

OM

Oleg Makarikhin in Regular Expressions
это из quick reference https://regex101.com/
источник

СД

Стас Донцов... in Regular Expressions
да, я понял
источник

СД

Стас Донцов... in Regular Expressions
я там тестирую часто регулярки
источник

СД

Стас Донцов... in Regular Expressions
хм немного не понимаю как оно работает: т.е. верно понимаю что здесь определяется несколько пар вида  имя-регулярка соответствующая имени:

numbers = \d+
lowercase = [a-z]+
uppercase = [A-Z]+

и их потом можно где-то испоьзовать?
источник

OM

Oleg Makarikhin in Regular Expressions
ну в той-же регулярке
источник

СД

Стас Донцов... in Regular Expressions
а, и потом после матчинга если что-то отматчится (как тут отматчилась группа letters для слова "letters") то в результате матчинга эта группа будет иметь название letters?
источник

СД

Стас Донцов... in Regular Expressions
оно?
источник

OM

Oleg Makarikhin in Regular Expressions
вроде нет, для присвивания имени капчагруппе надо использовать named capture group
источник

OM

Oleg Makarikhin in Regular Expressions
(?<name>паттерн)
источник

OM

Oleg Makarikhin in Regular Expressions
у разных языков по разному
источник