Як зрозуміти регулярні вирази
Можна почати з вікіпедії і спробувати зробити приклади онлайн)
Коли ти бачиш багато тексту, Новомосковський через абзац
Їх не потрібно розуміти, ти просто Новомосковскешь їх.
Дуже просто.
є обмежувачі
^ - початок рядка
$ - кінець рядка
| - символ "або" - використовується між символами або групами, щоб показати "або те або інше"
Виглядає так:
/ ^ (([A-z] +) | ([а-я] +)) $ /
Новомосковскется як рядок, що складається з будь-якої кількості букв від a до z (англійських маленьких букв) або будь-якої кількості українських букв, не включаючи е, на виході буде три вибірки - перша - вся рядок, другий рядок з англійських букв, третя - рядок з українських .
Але саме цей код ще може бути переписаний так:
/ ^ ([A-zа-я] +) $ /
Оскільки немає сенсу розділяти українські та англійські в окремі групи. Так просто коротше і легше.
є символи
. - це "точка". будь-який символ, не включаючи зовсім деяких типу табуляцій, переносів рядків різних там
\ W - це слово - ось прям будь-яка конструкція з будь-якої кількості букв
(Є інші різні)
Є кількісні знаки
.* - зірочка означає або є, або немає, в будь-якій кількості
.+ - плюс - обов'язково є, хоча б одна "точка"
. - від двох і до безкінечності "точок"
. - від двох і до п'яти "точок"
є шаблони
[A-zA-Z] - будь-яка англійська літера. просто ж?
[A-яА-ЯёЁ] - будь-яка російська буква
[?!] - питання або знак оклику
є групи
([A-z] [a-z]) - група складається з двох букв. кожна з яких в проміжку між a-z англійськими
Групи від шаблонів відрізняються тим, що вони захоплюються твоїм пошуком. Ти ж не забув, що регулярка - це в першу чергу ПОШУК?
є модифікатори
/ ([Az] [az]) / gi - g (global), i (ignorcase) - глобал означає шукати в усьому тексті не враховуючи переноси рядків, якщо не поставити - буде шукати тільки в межах одного рядка, ignorcase - дозволить не вказувати великі букви
/ ([A-z] [a-z]) / gu - g (global), u (utf-8) - утф8 дозволить коректно працювати з українськими літерами в utf-8 кодуванні, часта проблема на форумах