Я понял, что несмотря на то, что Regex невероятно полезен, его очень сложно освоить! Эта шпаргалка содержит наиболее распространенные случаи использования RegEx, которые помогут вам в любой момент, когда вам понадобится заглянуть в синтаксис Regex!
Символы
Символы | Легенда | Пример | Образец |
---|---|---|---|
[abc], [a-c] | Сопоставить заданные символы/диапазон символов | abc[abc] | abca, abcb, abcc |
[^abc], [^a-c] | Отрицание и соответствие заданным символам/диапазону символов | abc[^abc] | abcd, abce, abc1, … |
. | Любой символ, кроме перевода строки | bc. | bca, bcd, bc1, b., … |
d | Любой цифровой символ (эквивалент [0-9]) | cd | c1, c2, c3 … |
D | Любой нечисловой символ (эквивалент [^0-9]) | cD | ca, c., c* … |
w | Любой буквенно-цифровой символ (эквивалент [A-Za-z0-9_]) | aw | aa, a1, a_ … |
W | Любой неалфавитно-цифровой символ (эквивалент [A-Za-z0-9_]) | aW | a), a$, a? … |
s | Обычно используется для пробела, но может использоваться для новой строки, табуляции и т.д. | as | a |
S | Не белое пространство или эквивалент новой строки, табуляции и т.д. | aS | aa |
t | Соответствует горизонтальной табуляции | Ttab | T ab |
r | Соответствует возврату каретки | ABrnCD | AB CD |
n | Совпадает с переводом строки | ABrnCD | AB CD |
Экранирует специальные символы | d | 0, 1, … | |
x|y | Сопоставляет либо «x», либо «y». | a|b | a, b |
Утверждения
Символы | Легенда | Пример | Образец совпадения |
---|---|---|---|
^ | Начало строки или начало строки в зависимости от многострочного режима | ^abc.* | abc, abd, abcd, … |
$ | Конец строки или начало строки в зависимости от многострочного режима | .*xyz$ | xyz, wxyz, abcdxyz, … |
b | Сопоставляет слово-символ, за которым не следует другое слово-символ | Мой.*bpie | Мой яблочный пирог, … |
B | Совпадает с несловообразовательной границей | c.*Bcat | подражатель, … |
x(?=y) | Утверждение с опережением: Сопоставляет «x» только если за «x» следует «y» | d+(?=€) | $1 = 0.98€, … |
x(?!y) | Утверждение Negative Lookahead: Совпадает с «x», только если за «x» следует не «y» | d+b(?!€) | $1 = 0.98€ , … |
(?<=y)x | Утверждение Lookbehind: Совпадает с «x» только если «x» предшествует «y» | (?<=d)d | $1 = 0.9*8*€, … |
(?<!y)x | Отрицательное утверждение Lookbehind: Совпадает с «x» только если «x» не предшествует «y» | (?<!d)d | $1 = 0.98€, … |
Группы
Символы | Легенда | Пример | Образец совпадения |
---|---|---|---|
(x) | Группа захвата: Сопоставляет x и запоминает соответствие | A(nt|pple) | Ant (запоминает «nt») |
(?<name>x) | Группа захвата: Сопоставляет x и сохраняет его в упомянутой переменной | A(?<m>nt|pple) | Ant (m = «nt») |
(?:name>x) | Группа без захвата: Совпадает с x и не запоминает совпадение | A(?:nt|pple) | Ant |
n | Обратная ссылка на последнюю подстроку, соответствующую скобке n | (d)+(d)=2+1 | 5+6=6+5 |
Квантификаторы
Символы | Легенда | Пример | Образец соответствия |
---|---|---|---|
x* | Совпадает с предыдущим элементом «x» 0 или более раз | a* | a, aa, aaa, … |
x+ | Совпадает с предыдущим элементом «x» 1 или более раз, эквивалентно {1,} | a+ | aa, aaa, aaa, … |
x? | Совпадает с предыдущим элементом «x» 0 или 1 раз | ab? | a, ab |
x{n} | Совпадает с предыдущим элементом «x» n раз (n = целое положительное число) | ab{5}c | abbbbbbc |
x{n,} | Совпадает с предыдущим элементом «x» не менее n раз (n = целое положительное число) | ab{2,}c | abbc, abbbc, abbbbc, … |
x{n,m} | Совпадает с предыдущим элементом «x» не менее n раз & не более m раз (n<m) | ab{2,3}c | abbc, abbbc |
ПРИМЕЧАНИЕ
По умолчанию квантификаторы являются жадными (они пытаются подобрать как можно большую часть строки). Символ ?
после квантификатора делает квантификатор не жадным (он остановится, как только найдет совпадение).
Например: d+?
для тестовой строки 12345
будет соответствовать только 1
, но d+
будет соответствовать всей строке 12345
.
Флаги
Флаги ставятся в конце регулярного выражения. Они используются для изменения поведения регулярного выражения.
Например: /a/
для тестовой строки a
будет соответствовать только a
, но добавление флага i
(/a/i
) будет соответствовать и a
и A
.
Символы | Легенда |
---|---|
d | Генерировать индексы для совпадений подстрок |
g | Глобальный поиск |
i | Поиск без учета регистра |
m | Многострочный поиск |
s | Позволяет использовать . для поиска символов новой строки |
u | Рассматривает шаблон как последовательность кодовых точек Юникода |
y | Выполнить поиск с использованием «липкого» поиска, который выполняет поиск, начиная с текущей позиции в целевой строке. |
Вот и все, друзья!
Исследования показывают, что если записывать свои цели на бумаге, то вероятность их достижения возрастает на 21%-39%. Посмотрите на эти блокноты и журналы, которые облегчат вам путь к достижению мечты: https://www.amazon.com/Tapajyoti-Bose/e/B09VGDDHRR.
Спасибо за чтение
Нужен высококлассный фрилансер по разработке Front-End, чтобы устранить ваши проблемы с разработкой? Свяжитесь со мной на Upwork
Хотите увидеть, над чем я работаю? Посетите мой личный сайт и GitHub.
Хотите пообщаться? Свяжитесь со мной на LinkedIn
Я переехал на Бали, Индонезия, в качестве цифрового кочевника. Следите за мной в Instagram, чтобы узнать, чем я занимаюсь.
Следите за моими блогами, чтобы получать еженедельные новости о Dev.
FAQ
Это несколько часто задаваемых вопросов, которые я получаю. Надеюсь, этот раздел FAQ решит ваши проблемы.
-
Я новичок, как мне изучить Front-End Web Dev?
Ознакомьтесь со следующими статьями:- Дорожная карта разработки фронт-энда
- Идеи фронт-энд проектов
-
Вы могли бы стать моим наставником?
Извините, у меня и так много работы, и у меня не будет времени наставлять кого-либо.