Русский
Русский
English
Статистика
Реклама

Перевод Шпаргалка по регулярке



Доброго времени суток, друзья!

Представляю Вашему вниманию перевод статьи Regex Cheat Sheet автора Emma Bostian.

Регулярные выражения или regex используются для поиска совпадений в строке.

Ищем совпадение по шаблону

Используем метод .test()

const testString = 'My test string'const testRegex = /string/testRegex.test(testString) // true

Ищем совпадение по нескольким шаблонам

Используем | альтернацию

const regex = /yes|no|maybe/

Игнорируем регистр

Используем флаг i

const caseInsensitiveRegex = /ignore case/iconst testString = 'We use the i flag to iGnOrE CasE'caseInsensitiveRegex.test(testString) // true

Извлекаем первое совпадение в переменную

Используем метод .match()

const match = 'Hello World!'.macth(/hello/i) // 'Hello'


Извлекаем все совпадения в массив

Используем флаг g

const testString = 'Repeat repeat rePeAt'const regexWithAllMatches = /Repeat/gitestString.match(regexWithAllMatches) // ['Repeat', 'repeat', 'rePeAt']

Ищем любой символ

Используем символ.

const regexWithWildCard = /.at/giconst testString = 'cat BAT cupcake fAt mat dog'const allMatchingWords = testString.match(regexWithWildCard) // ['cat', 'BAT', 'fAt', 'mat']

Ищем один вариативный символ

Используем классы, позволяющие в [ ] определять группу искомых символов

const regexWithCharClass = /[cfm]at/gconst testString = 'cat fat bat mat'const allMatchingWords = testString.match(regexWithCharClass) // ['cat', 'fat', 'mat']

Ищем буквы алфавита

Используем диапазон [a-z]

const regexWithCharRange = /[a-e]at/const catString = 'cat'const batString = 'bat'const fatString = 'fat'regexWithCharRange.test(catString) // trueregexWithCharRange.test(batString) // trueregexWithCharRange.test(fatString) // false

Ищем определенные числа или буквы

Используем диапазон [a-z0-9]

const regexWithLetterAndNumberRange = /[a-z0-9]/igconst testString = 'Emma19382'testString.macth(regexWithLetterAndNumberRange) // true

Ищем единственный неизвестный символ

Для исключения ненужных символов используем символ ^ отрицательный набор

const allCharsNotAllowed = /[^aeiou]/giconst allCharsOrNumbersNotAllowed = /^aeiou0-9/gi

Ищем символы, встречающиеся в строке один или более раз

Используем символ +

const oneOrMoreAsRegex = /a+/giconst oneOrMoreSsRegex = /s+/giconst cityInFlorida = 'Tallahassee'cityInFlorida.match(oneOrMoreAsRegex) // ['a', 'a', 'a']cityInFlorida.match(oneOrMoreSsRegex) // ['ss']

Ищем символы, встречающиеся в строке ноль или более раз

Используем символ *

const zeroOrMoreOsRegex = /hi*/giconst normalHi = 'hi'const happyHi = 'hiiiiii'const twoHis = 'hiihii'const bye = 'bye'normalHi.match(zeroOrMoreOsRegex) // ['hi']happyHi.match(zeroOrMoreOsRegex) // ['hiiiiii']twoHis.match(zeroOrMoreOsRegex) // ['hii', 'hii']bye.match(zeroOrMoreOsRegex) // null

Ленивый поиск совпадений

Ищем наименьшую часть строки, удовлетворяющую заданному условию.
Regex по умолчанию является жадным (ищет самую длинную часть строки, удовлетворяющую условию). Используем символ?

const testString = 'catastrophe'const greedyRegex = /c[a-z]*t/giconst lazyRegex = /c[a-z]*?t/gitestString.match(greedyRegex) // ['catast']testString.match(lazyRegex) // ['cat']

Ищем с помощью стартового шаблона (шаблона начала строки)

Для поиска строки по стартовому шаблону используем символ ^ (снаружи набора символов в [ ] в отличие от отрицательного набора)

const emmaAtFrontOfString = 'Emma likes cats a lot.'const emmaNotAtFrontOfString = 'the cats Emma likes are fluffy'const startingStringRegex = /^Emma/startingStringRegex.test(emmaAtFrontOfString) // truestartingStringRegex.test(emmaNotAtFrontOfString) // false

Ищем с помощью завершающего шаблона (шаблона конца строки)

Для поиска строки по завершающему шаблону используем символ $

const emmaAtBackOfString = 'The cats do not like Emma'const emmaNotAtBackOfString = 'Emma loves the cats'const endingStringRegex = /Emma$/endingStringRegex.test(emmaAtBackOfString) // trueendingStringRegex.test(emmaNotAtBackOfString) // false

Ищем все буквы или числа

Используем \w

const longHand = /[A-za-z0-9_]+/const shortHand = /\w+/const numbers = '42'const myFavouriteColor = 'magenta'longHand.test(numbers) // trueshortHand.test(numbers) // truelongHand.test(myFavouriteColor) // trueshortHand.test(myFavouriteColor) // true

Ищем любые символы, за исключением букв и чисел

Используем \W

const noAlphaNumericCharRegex = /\W/giconst weirdCharacters = '!_$!'const alphaNumericCharacters = 'ab24EF'noAlphaNumericCharRegex.test(weirdCharacters) // truenoAlphaNumericCharRegex.test(alphaNumericCharacters) // true

Ищем числа

Используем \d вместо [0-9]

const digitsRegex = /\d/gconst stringWithDigits = 'My cat eats $20.00 worth of food a week'stringWithDigits.match(digitsRegex) // ['2', '0', '0', '0']

Ищем не числа

Используем \D

const nonDigitsRegex = /\D/gconst stringWithLetters = '101 degrees'stringWithLetters.match(nonDigitsRegex) // [' ', 'd', 'e', 'g', 'r', 'e', 'e', 's']

Ищем пробелы

Используем \s

const sentenceWithWhitespace = 'I like cats!'const spaceRegex = /\s/gspaceRegex.match(sentenceWithWhitespace) // [' ', ' ']

Ищем любые символы, за исключением пробелов

Используем \S

const sentenceWithWhitespace = 'C a t'const nonWhitespaceRegex = /\S/gsentenceWithWhitespace.match(nonWhitespaceRegex) // ['C', 'a', 't']

Ищем определенное количество символов

Используем {от, до} квантификатор

const regularHi = 'hi'const mediocreHi = 'hiii'const superExcitedHey = 'heeeeyyyyy!!!'const excitedRegex = /hi{1,4}/excitedRegex.test(regularHi) // trueexcitedRegex.test(mediocreHi) // trueexcitedRegex.test(superExcitedHey) // false

Ищем минимальное количество символов

Используем {от, }

const regularHi = 'hi'const mediocreHi = 'hiii'const superExcitedHey = 'heeeeyyyyy!!!'const excitedRegex = /hi{2,}/excitedRegex.test(regularHi) // falseexcitedRegex.test(mediocreHi) // trueexcitedRegex.test(superExcitedHey) // false

Ищем точное количество символов

Используем {число символов}

const regularHi = 'hi'const mediocreHi = 'hiii'const superExcitedHey = 'heeeeyyyyy!!!'const excitedRegex = /hi{2}/excitedRegex.test(regularHi) // falseexcitedRegex.test(mediocreHi) // trueexcitedRegex.test(superExcitedHey) // false

Ищем ноль или один символ

Используем ? после искомого символа

const britishSpelling = 'colour'const americanSpelling = 'Color'const langRegex = /coloru?r/ilangRegex.test(britishSpelling) // truelangRegex.test(americanSpelling) // true

Прим. пер.: шпаргалка от MDN.

Благодарю за потраченное время. Надеюсь, оно было потрачено не зря.
Источник: habr.com
К списку статей
Опубликовано: 17.06.2020 08:10:07
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Javascript

Программирование

Разработка веб-сайтов

Разработка

Regular expressions

Regexp

Regex

Регулярные выражения

Категории

Последние комментарии

© 2006-2020, personeltest.ru