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