Игнорировать случай При сопоставлении
- До сих пор вы посмотрели на Regexes, чтобы делать буквальные спички строк. Но иногда вы можете также выбрать различия в случаях. Кейс (или иногда буквенный корпус) — это разница между прописными буквами и строчными буквами. Вы можете сопоставить оба случая, используя то, что называется флаг. Есть и другие флаги Но здесь вы будете сосредоточиться на флаге, который игнорирует чехол —
Я
флаг. Вы можете использовать его, добавив его в Regex. Пример использования этого флага —/Рэнди/i
. Это регулярное выражение может соответствовать строкамРэнди
,Рэнди
иРэнди
Отказ - Бывший:
let myString = "TItaN"; let myRegex = /Titan/i; let result = myRegex.test(myString); console.log(result); will display true
Извлечение совпадений
- До сих пор вы проверяли, существует ли шаблон или нет в строке. Вы также можете извлечь фактические совпадения, которые вы найдете с
.match ()
метод. - Использовать
.match ()
Способ, применяйте метод на строке и пропустите регулярное выражение в скобках. - Примечание: что
.match
Синтаксис — это «противоположность».test
Метод, который вы использовали до сих пор. - Бывший:
let extractStr = "Extract the word 'coding' from this string."; let codingRegex = /coding/; let result = extractStr.match(codingRegex);
console.log(result); will display ["coding"]
Найти больше, чем первый матч
- До сих пор вы смогли извлечь или искать шаблон один раз.
- Чтобы найти или извлечь шаблон более одного раза, вы можете использовать
g
флаг. *Бывший:
let twinkleStar = "Twinkle, twinkle, little star"; let starRegex = /twinkle/gi; let result = twinkleStar.match(starRegex); console.log(result); will display [ "Twinkle", "twinkle" ]
- Здесь мы использовали Regex
Starregex
, найденный и извлеченный какМерцание
Слова из строкиTwinkleStar
Отказ - ПРИМЕЧАНИЕ. Вы можете иметь несколько флагов на вашем Regex, как
/поиск/гИ.
Совместите что-нибудь с периодом подстановки
- Иногда вы не будете (или не надо) знать точные символы в ваших моделях. Это займет много времени, чтобы сделать это. К счастью, вы можете сэкономить время, используя персонаж подстановки:
Отказ
- Персонаж подстановки
Отказ
будет соответствовать любому одному символу. Подстановочный знак также называетсяточка
ипериод
Отказ Вы можете использовать персонаж подстановки, как и любой другой символ в Regex. Например, если вы хотите сопоставить Run, Sun, Fun, Pun, Nun, Bun, вы можете использовать Regex/.un/, чтобы соответствовать всем шести словам. - Бывший:
let exampleStr = "Let's have fun with regular expressions!"; let unRegex = /.un/; let result = unRegex.test(exampleStr); console.log(result); will display true here
Сопоставить один символ с несколькими возможностями
- Вы узнали, как сопоставить буквальные узоры (
/Littleal/
) и символ подстановки (/./
). Это крайности регулярных выражений, где можно найти точные совпадения, а другой совпадает. Есть варианты, которые являются балансом между двумя крайностями. - Классы символов позволяют определить группу персонажей, которые вы хотите сопоставить, поместив их внутри квадратных ([и]) кронштейнов.
- Например, вы хотите сопоставить классы символов с гласными (a, e, i, o, u) в вашем Regex vowelregex, чтобы найти все гласные в строке Quotesample.
- Примечание. Обязательно сопоставьте как верхние, так и строчные гласные.
let quoteSample = "Beware of bugs in the above code; I have only proved it correct, not tried it."; let vowelRegex = /[aeiou]/gi; let result = quoteSample.match(vowelRegex);
console.log(result); will display [ 'e', 'a', 'e', 'o', 'u', 'i', 'e', 'a', 'o', 'e', 'o', 'e', 'I', 'a', 'e', 'o', 'o', 'e', 'i', 'o', 'e', 'o', 'i', 'e', 'i' ]
Сопоставлять буквы алфавита
- Вы видели, как вы можете использовать наборы символов, чтобы указать группу символов, чтобы соответствовать, но это много набора текста, когда вам необходимо сопоставить большой ассортимент символов (например, каждая буква в алфавите). К счастью, есть встроенная особенность, которая делает это короткий и простой.
- Внутри набора символов вы можете определить диапазон символов, чтобы соответствовать использованию используемого характера дефиса:
-
Отказ - Например, давайте сопоставнем все буквы в строке Quotesample.
- Примечание. Обязательно сопоставьте как заглавные, так и строчные буквы.
let quoteSample = "The quick brown fox jumps over the lazy dog."; let alphabetRegex = /[a-z]/gi; let result = quoteSample.match(alphabetRegex); console.log(result); will display [ 'T', 'h', 'e', 'q', 'u', 'i', 'c', 'k', 'b', 'r', 'o', 'w', 'n', 'f', 'o', 'x', 'j', 'u', 'm', 'p', 's', 'o', 'v', 'e', 'r', 't', 'h', 'e', 'l', 'a', 'z', 'y', 'd', 'o', 'g' ]
Номера матчей и буквы алфавита
- Используя дефис (
-
), чтобы соответствовать диапазону символов не ограничивается буквами. Это также работает, чтобы соответствовать ряду цифр. - Например,
/[0-5]/
соответствует любому количеству между0
и5
, в том числе0
и5
Отказ - Кроме того, можно сочетать ряд букв и цифр в одном наборе символов.
- Бывший:
let quoteSample = "Blueberry 3.141592653s are delicious."; let myRegex = /[h-s2-6]/ig; let result = quoteSample.match(myRegex);
console.log(result); will display [ 'l', 'r', 'r', '3', '4', '5', '2', '6', '5', '3', 's', 'r', 'l', 'i', 'i', 'o', 's' ]
- Здесь мы создали один Regex, который соответствует диапазону букв между H и S, а диапазон номеров от 2 до 6. Мы не забыли включить соответствующие флаги в Regex.
Соответствовать одному персонажам Не указано
- До сих пор мы создали набор символов, которые мы хотели сопоставить, но мы также можем создать набор символов, которые мы не хотим совпадать. Эти типы наборов символов называются настраиваемыми наборами символов.
- Чтобы создать набор наведенного символа, вы помещаете Caret Charace (
^
) после открытия кронштейна и перед персонажами, которые вы не хотите совпадать. - Например,
/[^ aeiou]/gi
Соответствует всем персонажам, которые не являются гласными. Обратите внимание, что персонажи, такие какОтказ
, `!,
[,
@,
/`И белое пространство совпадают — на Neediced Vowel набор символов исключает только гласные символы. - Давайте создадим одно Regex, соответствующий всем персонажам, которые не являются числом или гласным. Не забудьте включить соответствующие флаги в Regex.
- Ex: ` позволять; Пусть myregex =/[[^ aeiou0-9]/gi; let.match (myregex);
console.log (результат); будет отображаться [», ‘b’, ‘l’, ‘n’, ‘d’, », ‘m’, ‘c’, ‘.’. ‘ ] `
Сопоставить символы, которые происходят один или несколько раз
- Иногда вам необходимо сопоставить символ (или группу символов), которое появляется один или несколько раз подряд. Это означает, что оно происходит, по крайней мере, один раз и может повторяться.
- Вы можете использовать
+
персонаж, чтобы проверить, есть ли это так. Помните, что персонаж или шаблон должны быть присутствующими последовательно. То есть персонаж должен повторить один за другим. - Ex: Вы хотите найти совпадения, когда буква
S
происходит один или несколько раз вМиссисипи
Отказ Напишите регулярное выражение, которое использует+
подписать.`пусть; Пусть myregex =/s +/gi; let.match (myregex); `
`console.log (результат); будет отображаться [«SS», «SS»] `
- Он нашел два матча и возврат [«SS», «Ss»], потому что персонажи не подряд.
Оригинал: «https://dev.to/rthefounding/continue-regular-expressions-notes-341h»