Тестер регулярных выражений и отладчик онлайн
Регулярные выражения
- JavascriptPCRE
- флаги
Тестовая строка
Замена
Сохранить это регулярное выражение
Имя:
Описание:
Верхние регулярные выражения
Сопоставить строку, не содержащую строку
Проверить, содержит ли строка только числа
Совпадение с элементами URL
Совпадение с адресом электронной почты
Подтверждение IP-адреса
Совпадение или проверка номера телефона
Совпадение с тегом html
Пустая строка
Совпадение дат (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ , MM/DD/YYYY)
Проверяет длину номера и не начинается с 0
Не разрешает использование специальных символов
Соответствует действительному имени хоста
Проверяет дату и время
строка между кавычками + вложенные кавычки
Соответствует скобкам
URL-адрес
соответствует широкому диапазону международных номер телефона
Совпадает с IPv6-адресом
проверка электронной почты
RegEx, разрешающий только номер
Шпаргалка
| Классы символов | |
|---|---|
.![]() | любой символ кроме новой строки |
| \ш\д\с | слово, цифра, пробел |
| \Ш \Д \С | не слово, цифра, пробел | начало/конец строки |
| \б | граница слова |
| Экранированные символы | |
| \. \*\ | экранированные специальные символы |
| \т \н \р | вкладка, перевод строки, возврат каретки |
| \u00A9 | Юникод сбежал © |
| Группы и поиск | |
| (абв) | группа захвата |
| \1 | обратная ссылка на группу №1 |
| (?:abc) | группа без захвата |
| (?=abc) | положительный прогноз |
| (?!abc) | отрицательный прогноз |
| Квантификаторы и чередование | |
| а* а+ а? | 0 или более, 1 или более, 0 или 1 |
| а{5} а{2,} | ровно пять, два или больше |
| а{1,3} | между одним и тремя |
| а+? а{2,}? | соответствует как можно меньшему числу |
| аб|кд | соответствует ab или cd |
Regex Tester еще не оптимизирован для мобильных устройств.
Вы все еще можете взглянуть, но это может быть немного причудливо.
> Хорошо!
Для проверки регулярных выражений требуется современный браузер. Пожалуйста, обновите браузер до последней версии и повторите попытку.
Присоединяйтесь, чтобы получить доступ к дискуссионным форумам и расширенным функциям сайта.
Спасибо за использование моего инструмента. Если бы вы могли поделиться этим инструментом со своими друзьями, это было бы огромной помощью:
Твитнуть
Или подпишитесь на нас, чтобы узнать о наших последних инструментах:
Follow @danstools00
$regex — MongoDB Manual
Docs Home → Руководство по MongoDB
На этой странице
- Определение
- Поведение
- Примеры
Для данных, размещенных в MongoDB Atlas , MongoDB предлагает
решение для полнотекстового поиска MongoDB Atlas Search.
Если вы часто запускаете регулярное выражение без учета регистра
запросы (используя опцию i ), MongoDB рекомендует Atlas Search
запросы, использующие этап конвейера агрегации $search .
Атлас Поисковые запросы значительно улучшить производительность текстовых запросов и предложить больше возможности настройки параметров запроса. Чтобы узнать больше, см. Атласный поиск MongoDB.
Информацию о самоуправляемых развертываниях можно найти на нашем возможность регулярного выражения ниже.
Определение
-
$regex Предоставляет возможности регулярных выражений для сопоставления с образцом строки в запросах. MongoDB использует Perl-совместимый обычный выражений (например, «PCRE») версии 8.42 с поддержкой UTF-8.
Чтобы использовать
$regex, используйте один из следующих синтаксисов:{ : { $regex: /pattern/, $options: ‘ ‘ } } { : { $regex: ‘pattern’, $options: ‘ ‘ } } { : { $regex: /pattern/ } } В MongoDB вы также можете использовать объекты регулярных выражений (т.
е. /pattern/) для указания регулярных выражений:{ : /pattern/ } Ограничения на использование определенного синтаксиса см. Синтаксис $regex против /pattern/.
-
$опции
Следующие
<опции>доступны для использования с обычными выражение.Опция
Описание
Синтаксис ограничения
. Пример см. в разделе Выполнение сопоставления регулярных выражений без учета регистра.
9 для начала, $на конец), совпадение в начале или конце каждого line для строк с многострочными значениями. Без этой опции эти якоря совпадают в начале или в конце строки. Для пример см. в разделе Многострочное совпадение для строк, начинающихся с указанного шаблона.Если шаблон не содержит якорей или строковое значение без символов новой строки (например,
\n), опцияне имеет эффект. mх«Расширенная» возможность игнорировать все символы пробела в шаблон
$regex, если он не экранирован или не включен в класс персонажа.Кроме того, он игнорирует символы между ними, включая неэкранированный символ решетки/фунта (
#) и следующий новый строку, так что вы можете включать комментарии в сложные узоры. Это относится только к символам данных; белое пространство символы никогда не могут появляться внутри специального символа последовательности в шаблоне.
Параметр
xне влияет на работу с VT символ (например, код 11).Требуется
Синтаксис$ regexс$ ОпционыSAll Allse Dote Dote. символов , включая символа новой строки. Например, см. Использование
.Символ точки для соответствия новой строке.Требуется
$regexс$optionsсинтаксисОператор
$regexне поддерживает глобальный поиск модификаторг.-
Поведение
$regex и /pattern/ Синтаксис
$in Выражения используйте только объекты регулярных выражений JavaScript (например, /pattern/ ).
Например:
Вы не можете
$regex внутри $in Неявный
И Условия для поля Чтобы включить регулярное выражение в список запросов, разделенных запятыми
условия для поля, используйте оператор $regex . Например:
| { имя: { $regex: /acme.*corp/i, $nin: [‘acmeblahcorp’] } } |
| { имя: { $regex: /acme.*corp /, $options: ‘i’, $nin: [‘acmeblahcorp’] } } |
| { имя: { $regex: ‘acme.*corp’, $options: ‘i’, $nin: [‘acmeblahcorp’ ] } } |
x и2 s
9 Опции Чтобы использовать параметр x или параметры s , необходимо использовать $regex выражение оператора с $options оператор. Например, чтобы указать параметры i и s ,
необходимо использовать $options для обоих: { name: { $regex: /acme. *corp/, $options: «si» } } |
| { name: { $regex: ‘acme.*corp’, $options: «si » } } |
PCRE и JavaScript
Чтобы использовать поддерживаемые PCRE функции в регулярном выражении, которые не
поддерживается в JavaScript, вы должны использовать оператор $regex и
укажите регулярное выражение в виде строки.
Для соответствия строкам без учета регистра:
Например, регулярное выражение "(?i)a(?-i)cme" соответствует строкам
Это:
Эти строки соответствуют примеру Регулярное выражение:
"ACME""ACME"
. Следующий пример использует $ Regex 43
. Следующий пример использует $ $ Regex 434343
. На « $ $ Regex
». На « $ Regex 43434343
».
строки полей, соответствующие регулярному выражению "(?i)a(?-i)cme" :
| { name: { $regex: «(?i)a(?-i)cme» } } |
$regex и $not Оператор $not может выполнять логическое NOT операция на обоих:
В 4.
0.6 и более ранних версиях вы могли использовать оператор $not с обычным
объекты выражений (например, /pattern/ ), но не с $regex операторные выражения.
Использование индекса
Для запросов регулярных выражений с учетом регистра, если существует индекс для поле, то MongoDB сопоставляет регулярное выражение с значения в индексе, что может быть быстрее, чем сканирование коллекции. 9а/ может остановить сканирование после совпадения префикса.
Запросы регулярных выражений без учета регистра обычно не могут использовать индексы
эффективно. Реализация $regex не поддерживает сортировку.
и не может использовать индексы без учета регистра.
Примеры
Примеры в этом разделе используют следующие Продукты Коллекция:
| DB.Products.insertmany ([ |
| {_ID: 100, «10060 |
{_id: 100,» 100, «. описание строки.» }, |
| { _id: 101, артикул: «abc789», описание: «Первая строка\nВторая строка» }, |
| { _id: 102, артикул: «xyz456», описание: «Много пробелов перед строкой» } , |
| { _id: 103, sku: «xyz789», description: «Многострочное описание» }, |
| { _id: 104, sku: «Abc789», description: «SKU начинается с A» } |
| ] ) |
Выполнить
НРАВИТСЯ Соответствие Следующий пример соответствует всем документам, в которых указано поле sku .
например "%789" :
| db.products.find( { sku: { $regex: /789$/ } } ) |
Пример аналогичен следующему оператору SQL LIKE:
| ВЫБЕРИТЕ * ИЗ продуктов |
| ГДЕ sku как «%789»; |
Пример вывода:
| [ |
| { _id: 101, sku: ‘abc789’, description: ‘Первая строка\nВторая строка’ }, |
| { _id: 103, sku: ‘xyz789’, description: ‘Многострочное описание’ }, |
| { _id: 104, sku: ‘Abc789’, description: ‘Артикул начинается с A’ } |
| ] |
i вариант выполнить без учета регистра 9ABC/i } } ) |
Пример вывода:
| [ |
{ _id: description 100, sku: ‘abc’ing. }, |
| { _id: 101, sku: ‘abc789’, description: ‘Первая строка\nВторая строка’ }, |
| { _id: 104, sku: ‘Abc789’, description: ‘Артикул начинается с A ‘ } |
| ] |
Многострочное совпадение для строк, начинающихся с указанного шаблона 9S/, $options: ‘m’ } } )
Пример вывода:
| [ |
| { _id: 1’ab’leing line.100, sku’leing description: 100, sku’leing. }, |
| { _id: 101, sku: ‘abc789’, description: ‘Первая строка\nВторая строка’ }, |
| { _id: 104, sku: ‘Abc789’, description: ‘Артикул начинается с A ‘ } |
| ] |
Без опции m пример вывода:
| [ |
| { _id: 100, sku: ‘abc123’, description: ‘Описание в одну строку.’ }, |
| { _id: 104, sku: ‘Abc789’, description: ‘Артикул начинается с A’ } |
| ] |
Если якорь не содержит шаблон $4ex шаблон соответствует строке в целом, как в следующем примере:
db. products.find( { description: { $regex: /S/ } } ) |
Пример вывода:
| [ |
| { _id: 100, sku: ‘abc123’, description: ‘Однострочное описание. }, |
| { _id: 101, sku: ‘abc789’, description: ‘Первая строка\nВторая строка’ }, |
| { _id: 104, sku: ‘Abc789’, description: ‘Артикул начинается с A ‘ } |
| ] |
Используйте
. Символ точки для соответствия новой строке В следующем примере используется опция s , позволяющая
(например, . ) для соответствия всем символам , включая новую строку, а также i опция для поиска без учета регистра:
| db.products.find( { описание: { $regex: /m.*line/, $options: ‘si’ } } ) |
Пример вывода:
| [ |
| { _id: 102, артикул: ‘xyz456’, описание: ‘Много пробелов перед строкой’ }, |
| {_ID: 103, SKU: ‘xyz789’, Описание: «Множественное описание \ nline ‘} |
| ] |
без S .


*corp/, $options: «si» } }
описание строки.» },
},
products.find( { description: { $regex: /S/ } } )