Тестер регулярных выражений и отладчик онлайн
Регулярные выражения
- JavascriptPCRE
- флаги
Тестовая строка
Замена
Сохранить это регулярное выражение
Имя:
Описание:
Верхние регулярные выражения
Сопоставить строку, не содержащую строку
Проверить, содержит ли строка только числа
Соответствие элементам URL-адреса
Соответствие адресу электронной почты
Проверка IP-адреса
Соответствие или проверка номера телефона
Соответствие HTML-тегу
Соответствие дат (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ, ММ/ ДД/ГГГГ)
Пустая строка
Проверяет длину числа и не начинается с 0 номер телефона
Совпадает с IPv6-адресом
проверка электронной почты
RegEx, разрешающий только номер
Шпаргалка
| Классы символов | |
|---|---|
.![]() | любой символ кроме новой строки |
| \ш\д\с | слово, цифра, пробел |
| \Ш \Д \С | не слово, цифра, пробел | начало/конец строки |
| \б | граница слова |
| Экранированные символы | |
| \. \*\ | экранированные специальные символы |
| \т \н \р | вкладка, перевод строки, возврат каретки |
| \u00A9 | Юникод сбежал © |
| Группы и поиск | |
| (абв) | группа захвата |
| \1 | обратная ссылка на группу №1 |
| (?:abc) | группа без захвата |
| (?=abc) | |
| (?!abc) | отрицательный прогноз |
| Квантификаторы и чередование | |
| а* а+ а? | 0 или более, 1 или более, 0 или 1 |
| а{5} а{2,} | ровно пять, два или больше |
| а{1,3} | между одним и тремя |
| а+? а{2,}? | соответствует как можно меньшему числу |
| аб|кд | |
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» в этом контексте: первый — регулярное выражение, второй — строка. Это частый источник ярости отладчика — думать, что вы ищете с помощью сопоставления регулярных выражений только для того, чтобы обнаружить строку в кавычках. Читайте дальше для упоминания о , что делает этот тип опечатки менее распространенным.
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:
| Quantifier | Description |
|---|---|
n+ | Match at least one n |
n* | Соответствует нулю или более вхождений n |
n? | Совпадение с нулем или одним вхождением n | MATCH 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.


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

Любая строка. Следуя Строка
" ;
пусть шаблон = /Cat/ig ;
console.log(шаблон.тест(строка)); // --> верно
console.log(шаблон.exec(строка)); // --> ["кошка"]

