Тестер регулярных выражений и отладчик онлайн
Регулярные выражения
- 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.