Тестер регулярных выражений и отладчик онлайн

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

Тестовая строка

Замена
Сохранить это регулярное выражение

Имя: Описание:

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

Сопоставить строку, не содержащую строку
Проверить, содержит ли строка только числа
Соответствие элементам URL-адреса
Соответствие адресу электронной почты
Проверка IP-адреса
Соответствие или проверка номера телефона
Соответствие HTML-тегу
Соответствие дат (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ, ММ/ ДД/ГГГГ)
Пустая строка
Проверяет длину числа и не начинается с 0 номер телефона
Совпадает с IPv6-адресом
проверка электронной почты
RegEx, разрешающий только номер

Шпаргалка

9абв$
Классы символов
. любой символ кроме новой строки
\ш\д\с слово, цифра, пробел
\Ш \Д \С не слово, цифра, пробел
начало/конец строки
граница слова
Экранированные символы
\. \*\ экранированные специальные символы
\т \н \р вкладка, перевод строки, возврат каретки
\u00A9 Юникод сбежал ©
Группы и поиск
(абв) группа захвата
\1 обратная ссылка на группу №1
(?:abc) группа без захвата
(?=abc)
положительный прогноз
(?!abc) отрицательный прогноз
Квантификаторы и чередование
а* а+ а? 0 или более, 1 или более, 0 или 1
а{5} а{2,} ровно пять, два или больше
а{1,3} между одним и тремя
а+? а{2,}? соответствует как можно меньшему числу
аб|кд
соответствует ab или cd

Regex Tester еще не оптимизирован для мобильных устройств. Вы все еще можете взглянуть, но это может быть немного причудливо.

> Хорошо!

Для проверки регулярных выражений требуется современный браузер. Пожалуйста, обновите браузер до последней версии и повторите попытку.

Если у вас еще нет учетной записи, зарегистрируйтесь сейчас

Присоединяйтесь, чтобы получить доступ к дискуссионным форумам и расширенным функциям сайта.


Спасибо за использование моего инструмента. Если бы вы могли поделиться этим инструментом со своими друзьями, это было бы огромной помощью:
Твитнуть

Или подпишитесь на нас, чтобы узнать о наших новейших инструментах:
Follow @danstools00

Регулярные выражения Javascript — поиск по шаблону

Обычный выражения предоставляют возможность «найти» и «найти и заменить» данные с помощью текстовых строк, которые определяют шаблоны поиска. Регулярные выражения (или регулярные выражения) являются гибкими, мощными и значительно облегчают написание понятных и поддерживаемых программ. В этой записи блога будут рассмотрены эти шаблоны поиска и различные способы использования регулярных выражений в Javascript. 9,!]* находит слова, содержащие корень «кошка» в « кошка , не собака, а игрушки кошка разбросана около — категорически а катастрофа

Регулярные выражения не являются интуитивно понятными и, по-видимому, всегда требуют некоторой настройки, поэтому необходим онлайн-тестер регулярных выражений. Как сказал Джейми Завински на alt.religion.emacs в 1997 году:

Некоторые люди, сталкиваясь с проблемой, думают: «Я знаю, я буду использовать регулярные выражения». Теперь у них две проблемы.

Синтаксис

Регулярное выражение имеет синтаксис /pattern/modifiers . Используя строку /cat/i в качестве примера, терминология регулярных выражений: косая черта / — разделители шаблонов

Функция Javascript search() принимает регулярное выражение для поиска совпадения и возвращает позицию совпадения.

Функция Javascript replace() принимает регулярное выражение и возвращает модифицированную строку, в которой заменяется шаблон.

search()

Функция Javascript search() принимает регулярное выражение и возвращает позицию в строке, где найдено совпадение (или -1, если не найдено). Например, здесь мы ищем в строке слово «Кот» с модификатором i (регистр при поиске не учитывается).

 пусть регулярное выражение = /Cat/i ; // нечувствительный к регистру поиск по запросу "Кот"
let string = "мой кот, Кот" ; // поиск в этой строке
console.log(string.search(regex)); // -->
3

Эквивалентно предыдущему, search() может быть вызвано непосредственно для любой строковой переменной:

 console. log( "my cat, Cat".search(/Cat/) ) ; // --> 10
console.log("мой кот, Кот".search(/Cat/i) ); // --> 3
 

ПРИМЕЧАНИЕ. Javascript /Cat/ — это совершенно другой зверь, чем «Cat» в этом контексте: первый — регулярное выражение, второй — строка. Это частый источник ярости отладчика — думать, что вы ищете с помощью сопоставления регулярных выражений только для того, чтобы обнаружить строку в кавычках. Читайте дальше для упоминания о

RegExp() , что делает этот тип опечатки менее распространенным.

replace()

Функция Javascript replace() принимает регулярное выражение и возвращает строку, возможно модифицированную шаблоном, если поиск успешен. Сравните результаты следующих трех вызовов:

Поиск по литералу в кавычках для первого вхождения:

 console.log("my cat, Cat".replace("Cat", "Dog") ) ; // --> мой кот, Собака
 

Нечувствительный поиск по регулярному выражению для первого вхождения:

 console.
log( "мой кот, Кот".replace(/Кот/i, "Собака") ) ; // --> моя собака, кошка

Поиск по регулярному выражению, нечувствительный, глобально (все вхождения):

 console.log("my cat, Cat".replace(/Cat/ig, "Dog") ) ; // --> моя собака, собака
 

Поведение механизма сопоставления регулярных выражений изменено и расширено за счет использования модификаторов, диапазонов символов, метасимволов типа класса и квантификаторов.

Модификаторы

Модификаторы изменяют поведение сопоставления по умолчанию (возвращают первое совпадение, используют сопоставление с учетом регистра и сопоставляют только первую строку многострочной переменной):

Modifier Description
g global matching (all, rather first only)
i case-insensitive matching
m multi-line matching

Диапазоны

Диапазоны, разделенные квадратными скобками [] , соответствуют диапазону символов:

Выражение Описание 90-9] Найти любой символ НЕ в скобках (любой нецифровой)
`(x y)`

Метасимволы определенных видов

-9001 :

Метасимвол Описание
. один символ, кроме символа новой строки или конца строки
\w Слово символ
\ W A не слов. \s пробельный символ
\S непробельный символ
\b 0 90 слово с совпадением на границе 9,0234 \ BWORD или в конце с Слово \ B
\ B A Match, но не на начальном или конце слова
4 \ 0 359599595959595959595959595959595959559559595595595555555535353535555555555555555555555355553553535535355355355535553555355535355353535555555355353553553535353535н.
\ N Новая линейная символ
\ F Форма. \t tab character
\v vertical tab character
\xxx the character specified by an octal number xxx
\xdd the символ, заданный шестнадцатеричным числом dd
\udddd символ Unicode, заданный шестнадцатеричным числом dddd

Quantifiers

Quantifiers change the specific number match sequences:

9N
Quantifier Description
n+
Match at least one n
n* Соответствует нулю или более вхождений n
n? Совпадение с нулем или одним вхождением n
MATCH N В начале
? = N Матч. Любая строка. Следуя Строка N
? конкретная строка n

Встроенный объект Javascript RegExp обеспечивает более гибкий механизм использования переменных для каждого из соответствующих элементов. Вы видели это в действии — косая черта автоматически создает регулярные выражения — так что следующие эквиваленты:

 let foo = new RegExp("is a") ;
пусть бар = /является/ ;
 

test() и exec()

Давайте начнем изучение объекта RegExp с запуска сопоставления буквальной строки с объектом буквальной строки:

 console.log( /Cat/ig.exec( "Мой кот, Тор, это Бомбей." )) );
 

Чтобы предоставить программисту Javascript максимальную вычислительную гибкость, мы помещаем строку и шаблон в переменные, а затем используем методы test() и exec() для возврата логического значения и массива результатов соответственно:

 let string = "Мой кот Тор - бомбейский кот. " ;
пусть шаблон = /Cat/ig ;
console.log(шаблон.тест(строка)); // --> верно
console.log(шаблон.exec(строка)); // --> ["кошка"]
 

search()

Метод Javascript search() возвращает местоположение первого совпадения:

 console.log(string.search(pattern)); // --> 3
 

split()

Метод Javascript split() обрабатывает шаблон как разделитель и возвращает массив со всей строкой, разделенной шаблоном.

 let string = "Мой кот Тор - бомбейский кот." ;
пусть шаблон = /Cat/ig ;
console.log(string.split(шаблон)); // -->
["Мой ", ", Тор, Бомбей", "."]

match()

Метод Javascript match() возвращает массив со всеми совпадениями строк.

 console.log(string.match(шаблон)); // --> ["кот","кот"]
 

Это не очень впечатляет, но взгляните на результаты поиска (из приведенного выше примера) — теперь часть степени 9,!]*/г ; console.log(string.match(шаблон)); // --> [ "кошачий", "кошачий", "рассеянный", "категорически", "катастрофа" ]

replace()

Javascript replace() method

 let string = "Кошка, а не собака, и разбросанные кошкой игрушки — категорическая катастрофа!" ;
пусть шаблон = /Cat/ig ;
пусть замена = "Собака" ;
console.
log(string.replace(шаблон, замена));

Вывод показывает, что нам может потребоваться дополнительная работа, чтобы получить удовлетворительные результаты:

Собака, не собака, и игрушки, о которых собака sDogtered — догегорически Dogastrophe!

Какими бы мощными ни были регулярные выражения, необходимо упомянуть о группировке, которая обеспечивает кратковременную память о найденных совпадениях.

В следующем фрагменте кода мы сопоставляем два слова \w+ , которые разделены любым символом пробела \s (это может быть пробел, табуляция, возврат каретки, новая строка, вертикальная табуляция или символ перевода страницы). ).

Совпадения, запомненные скобками группировки, вызываются в спецификации замены позиционными маркерами $1 и $2 и поменять местами их порядок в строке '$2, $1' :

 let regex = /(\w+)\s(\w+)/
пусть строка = 'Имя Фамилия'
console.