Рубрики
Uncategorized

Продолжать: Регулярные выражения примечания

Игнорировать чехол при сопоставлении до сих пор, вы посмотрели на Regexes, чтобы сделать буквальные матчи … Теги с JavaScript, учебником, начинающим, дежопами.

Игнорировать случай При сопоставлении

  • До сих пор вы посмотрели на 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»