GIT commit NPE
95 subscribers
298 photos
5 videos
36 links
Кодинг, linux, git, SQL, regex, board games, ножі, треш-індастріал.
Download Telegram
А ось ковід завітав і до моєї оселі.
Майже весь цей тиждень мені приходилося вечорами замерзати. Ну, так склалося.
І в п'ятницю пізно ввечорі відчув невеликий дискомфорт у горлі. Спочатку подумав, що це "невелика застуда", результат перемерзань. Але сьогодні, коли вже наявні повноцінні ознаки застуди, зробив експрес-тест. І отакої 😔
Але є і гарні новини: в "Дії" нарешті підтягнувся мій зелений сертифікат про вакцинацію. Місяць його не було, мені прийшлося навіть взяти паперову довідку у лікарні. Про всяк випадок.
👍2
Кластер - на те він і кластер, щоб падати (с)
Жадібні квантифікатори

Майже завжди квантифікатори регулярних виразів за умовчанням працюють "жадібно": спочатку захоплюють якнайбільше символів, а потім, якщо треба, відкочуються назад і віддають по одному символу наступним елементам регулярки.

Наприклад, у нас є рядок: qqq

Мовою регулярок: q+.+
Українською: один або більше символів "q", а потім один або більше будь-яких символів (щодо "будь-який" не все так просто, але давайте зараз вважати саме так).
Процес: спочатку "q+" співпаде з "qqq", але потім відкотиться на один символ назад, віддаючи останню "q" фрагменту ".+".
Співпадіння: qqq (увесь рядок)

Матасимволом ? ми можемо перемкнути жадібність на протилежну.

Мовою регулярок: q+?.+
Українською: хоча б один символ "q", а потім один або більше будь-яких символів.
Процес: "q+" співпаде з першою "q" і задовольниться, а залишок "qq" співпаде з ".+".
Співпадіння: qqq (увесь рядок)

Уважний слухач в цьомі місці гнівно заволає: І нашо перемикати? Якщо результати однакові, то навіщо платити більше зайві символи?
А давайте тепер запам'ятаємо частину регулярки в групу.

Мовою регулярок: (q+).+
Співпадіння: qqq
Вміст групи, що співпала: qq

Мовою регулярок: (q+?).+
Співпадіння: qqq
Вміст групи, що співпала: q

P.S.: про метасимвол ? я писав ось тут.

#regex