Патерни і прапори

Як бачимо, те ж саме, хіба що для регекспа використаний метод search - він якраз працює з регулярними виразами, а для підрядка - indexOf.

Але це відповідність лише позірна. Дуже скоро ми усложним регулярні вирази, і тоді побачимо, що вони набагато могутніше.

Тут і далі в тексті використовується наступна колірна схема:

  • регексп (регулярний вираз) - червоний
  • рядок - синій
  • результат - зелений

Регулярні вирази можуть мати прапори, які впливають на пошук.

i Якщо цей прапор є, то регексп шукає незалежно від регістру, тобто не розрізняє між А і а. g Якщо цей прапор є, то регексп шукає всі збіги, інакше - тільки перше. m Багаторядковий режим.

Найпростіший для розуміння з цих прапорів - безумовно, i.

Приклад його використання:

  1. З РЕГОМ / ЛЮ / виклик повернув -1. що означає «, не знайдено» (як і в indexOf),
  2. З РЕГОМ / ЛЮ / i виклик знайшов збіг на позиції 2, так як варто прапор i. а значить «лю» теж підходить.

Інші прапори ми розглянемо в наступних розділах.

  • Регулярний вираз складається з шаблону і необов'язкових прапорів g. i і m.
  • Пошук по регулярному виразу без прапорів і спец. символів, які ми вивчимо далі - це те ж саме, що і звичайний пошук підрядка в рядку. Але прапори і спец. символи, як ми побачимо далі, можуть зробити його набагато могутніше.
  • Метод рядки str.search (regexp) повертає індекс, на якому знайдено збіг.

Схожі статті