Шпаргалка по регулярным выражениям (RegEx), которую вы всегда хотели получить

Я понял, что несмотря на то, что 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 решит ваши проблемы.

  1. Я новичок, как мне изучить Front-End Web Dev?
    Ознакомьтесь со следующими статьями:

    1. Дорожная карта разработки фронт-энда
    2. Идеи фронт-энд проектов
  2. Вы могли бы стать моим наставником?

    Извините, у меня и так много работы, и у меня не будет времени наставлять кого-либо.

Оцените статью
devanswers.ru
Добавить комментарий