Доброго времени суток, друзья!
Представляю Вашему вниманию перевод статьи «Regex Cheat Sheet» автора Emma Bostian.
Регулярные выражения или «regex» используются для поиска совпадений в строке.
Используем метод .test()
Используем | — альтернацию
Используем флаг i
Используем метод .match()
Используем флаг g
Используем символ.
Используем классы, позволяющие в [ ] определять группу искомых символов
Используем диапазон [a-z]
Используем диапазон [a-z0-9]
Для исключения ненужных символов используем символ ^ — отрицательный набор
Используем символ +
Используем символ *
Ищем наименьшую часть строки, удовлетворяющую заданному условию.
Regex по умолчанию является жадным (ищет самую длинную часть строки, удовлетворяющую условию). Используем символ?
Для поиска строки по стартовому шаблону используем символ ^ (снаружи набора символов в [ ] в отличие от отрицательного набора)
Для поиска строки по завершающему шаблону используем символ $
Используем \w
Используем \W
Используем \d вместо [0-9]
Используем \D
Используем \s
Используем \S
Используем {от, до} — квантификатор
Используем {от, }
Используем {число символов}
Используем
Прим. пер.: шпаргалка от MDN.
Благодарю за потраченное время. Надеюсь, оно было потрачено не зря.
Представляю Вашему вниманию перевод статьи «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/i
const testString = 'We use the i flag to iGnOrE CasE'
caseInsensitiveRegex.test(testString) // true
Извлекаем первое совпадение в переменную
Используем метод .match()
const match = 'Hello World!'.match(/hello/i) // 'Hello'
Извлекаем все совпадения в массив
Используем флаг g
const testString = 'Repeat repeat rePeAt'
const regexWithAllMatches = /Repeat/gi
testString.match(regexWithAllMatches) // ['Repeat', 'repeat', 'rePeAt']
Ищем любой символ
Используем символ.
const regexWithWildCard = /.at/gi
const testString = 'cat BAT cupcake fAt mat dog'
const allMatchingWords = testString.match(regexWithWildCard) // ['cat', 'BAT', 'fAt', 'mat']
Ищем один вариативный символ
Используем классы, позволяющие в [ ] определять группу искомых символов
const regexWithCharClass = /[cfm]at/g
const 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) // true
regexWithCharRange.test(batString) // true
regexWithCharRange.test(fatString) // false
Ищем определенные числа или буквы
Используем диапазон [a-z0-9]
const regexWithLetterAndNumberRange = /[a-z0-9]/ig
const testString = 'Emma19382'
testString.matсh(regexWithLetterAndNumberRange) // true
Ищем методом исключения
Для исключения ненужных символов используем символ ^ — отрицательный набор
const allCharsNotAllowed = /[^aeiou]/gi
const allCharsOrNumbersNotAllowed = /[^aeiou0-9]/gi
Ищем символы, встречающиеся в строке один или более раз
Используем символ +
const oneOrMoreAsRegex = /a+/gi
const oneOrMoreSsRegex = /s+/gi
const cityInFlorida = 'Tallahassee'
cityInFlorida.match(oneOrMoreAsRegex) // ['a', 'a', 'a']
cityInFlorida.match(oneOrMoreSsRegex) // ['ss']
Ищем символы, встречающиеся в строке ноль или более раз
Используем символ *
const zeroOrMoreOsRegex = /hi*/gi
const 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/gi
const lazyRegex = /c[a-z]*?t/gi
testString.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) // true
startingStringRegex.test(emmaNotAtFrontOfString) // false
Ищем с помощью завершающего шаблона (шаблона конца строки)
Для поиска строки по завершающему шаблону используем символ $
const emmaAtBackOfString = 'The cats do not like Emma'
const emmaNotAtBackOfString = 'Emma loves the cats'
const endingStringRegex = /Emma$/
endingStringRegex.test(emmaAtBackOfString) // true
endingStringRegex.test(emmaNotAtBackOfString) // false
Ищем все буквы или числа
Используем \w
const longHand = /[A-za-z0-9_]+/
const shortHand = /\w+/
const numbers = '42'
const myFavouriteColor = 'magenta'
longHand.test(numbers) // true
shortHand.test(numbers) // true
longHand.test(myFavouriteColor) // true
shortHand.test(myFavouriteColor) // true
Ищем любые символы, за исключением букв и чисел
Используем \W
const noAlphaNumericCharRegex = /\W/gi
const weirdCharacters = '!_$!'
const alphaNumericCharacters = 'ab24EF'
noAlphaNumericCharRegex.test(weirdCharacters) // true
noAlphaNumericCharRegex.test(alphaNumericCharacters) // true
Ищем числа
Используем \d вместо [0-9]
const digitsRegex = /\d/g
const stringWithDigits = 'My cat eats $20.00 worth of food a week'
stringWithDigits.match(digitsRegex) // ['2', '0', '0', '0']
Ищем не числа
Используем \D
const nonDigitsRegex = /\D/g
const stringWithLetters = '101 degrees'
stringWithLetters.match(nonDigitsRegex) // [' ', 'd', 'e', 'g', 'r', 'e', 'e', 's']
Ищем пробелы (пробельные символы)
Используем \s
const sentenceWithWhitespace = 'I like cats!'
const spaceRegex = /\s/g
spaceRegex.match(sentenceWithWhitespace) // [' ', ' ']
Ищем любые символы, за исключением пробелов
Используем \S
const sentenceWithWhitespace = 'C a t'
const nonWhitespaceRegex = /\S/g
sentenceWithWhitespace.match(nonWhitespaceRegex) // ['C', 'a', 't']
Ищем определенное количество символов
Используем {от, до} — квантификатор
const regularHi = 'hi'
const mediocreHi = 'hiii'
const superExcitedHey = 'heeeeyyyyy!!!'
const excitedRegex = /hi{1,4}/
excitedRegex.test(regularHi) // true
excitedRegex.test(mediocreHi) // true
excitedRegex.test(superExcitedHey) // false
Ищем минимальное количество символов
Используем {от, }
const regularHi = 'hi'
const mediocreHi = 'hiii'
const superExcitedHey = 'heeeeyyyyy!!!'
const excitedRegex = /hi{2,}/
excitedRegex.test(regularHi) // false
excitedRegex.test(mediocreHi) // true
excitedRegex.test(superExcitedHey) // false
Ищем точное количество символов
Используем {число символов}
const regularHi = 'hi'
const mediocreHi = 'hiii'
const superExcitedHey = 'heeeeyyyyy!!!'
const excitedRegex = /hi{2}/
excitedRegex.test(regularHi) // false
excitedRegex.test(mediocreHi) // true
excitedRegex.test(superExcitedHey) // false
Ищем ноль или один символ
Используем
?
после искомого символаconst britishSpelling = 'colour'
const americanSpelling = 'Color'
const langRegex = /colou?r/i
langRegex.test(britishSpelling) // true
langRegex.test(americanSpelling) // true
Прим. пер.: шпаргалка от MDN.
Благодарю за потраченное время. Надеюсь, оно было потрачено не зря.