Тестер регулярных выражений и отладчик онлайн
Регулярные выражения
- JavascriptPCRE
- флагов
Тестовая строка
Замена
Сохранить это регулярное выражение
Имя:
Описание:
Верхние регулярные выражения
Сопоставить строку, не содержащую строку
Проверить, содержит ли строка только числа
Соответствие элементам URL-адреса
Соответствие адресу электронной почты
Проверка IP-адреса
Соответствие или проверка номера телефона
Соответствие HTML-тегу
Соответствие дат (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ, ММ/ ДД/ГГГГ)
Пустая строка
Проверяет длину числа и не начинается с 0
Не разрешает использование специальных символов
Соответствует допустимому имени хоста
Проверяет дату и время
строка между кавычками + вложенные кавычки номер телефона
Совпадает с 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
На этой странице
- Определение
- Поведение
- Примеры
На этой странице описаны возможности поиска по регулярному выражению для
самоуправляемые (не Atlas) развертывания. Для данных, размещенных на MongoDB
Atlas, MongoDB предлагает улучшенное решение для полнотекстового поиска,
Atlas Search со своим собственным $regex
оператор. Чтобы узнать больше, см. $regex
в документации Atlas Search.
Определение
-
$regex
Предоставляет возможности регулярных выражений для сопоставления с образцом строки в запросах. MongoDB использует Perl-совместимый обычный выражений (например, «PCRE») версии 8.42 с поддержкой UTF-8.
Чтобы использовать
$regex
, используйте один из следующих синтаксисов:{ : { $regex: /pattern/, $options: ‘ ‘ } } 4 { : { $regex: ‘шаблон’, $options: ‘ ‘ } } { : { $regex: /pattern/ } } В MongoDB вы также можете использовать объекты регулярных выражений (т.е.
/pattern/
) для указания регулярных выражений:{ : /pattern/ } Ограничения на использование определенного синтаксиса см. Синтаксис $regex против /pattern/.
-
$опции
Следующие
<опции>
доступны для использования с обычными выражение. 9 для начала,$
на конец), совпадение в начале или конце каждого line для строк с многострочными значениями. Без этой опции эти якоря совпадают в начале или в конце строки. Для пример см. в разделе Многострочное совпадение для строк, начинающихся с указанного шаблона.Если шаблон не содержит якорей или строковое значение без символов новой строки (например,
\n
), опцияm
не имеет эффект.х
«Расширенная» возможность игнорировать все символы пробела в шаблон
$regex
, если он не экранирован или не включен в класс персонажа.Кроме того, он игнорирует символы между ними, включая неэкранированный символ решетки/фунта (
#
) и следующий новый строку, так что вы можете включать комментарии в сложные узоры. Это относится только к символам данных; белое пространство символы никогда не могут появляться внутри специального символа последовательности в шаблоне.Параметр
x
не влияет на работу с VT символ (например, код 11).Требуется
$ regex
с$ Опционы
СинтаксисS
All Allse Alll The Dote Dote. символов , включая символа новой строки. Например, см.
Используйте.
Символ точки для соответствия новой строке.Требуется
$regex
с$options
синтаксисОператор
$regex
не поддерживает глобальный поиск модификаторг
.-
Поведение
$regex и /pattern/ Синтаксис
$in
Выражения использовать только объекты регулярных выражений JavaScript (например, /pattern/
). Например:
Вы не можете использовать выражения оператора $regex
внутри $ в
.
Неявное
И
Условия для поля Чтобы включить регулярное выражение в список запросов, разделенных запятыми
условия для поля, используйте оператор $regex
. Например:
{ имя: { $regex: /acme.*corp/i, $nin: [‘acmeblahcorp’] } } |
{ имя: { $regex: /acme.*corp /, $options: ‘i’, $nin: [‘acmeblahcorp’] } } |
{ имя: { $regex: ‘acme.*corp’, $options: ‘i’, $nin: [‘acmeblahcorp’ ] } } |
x
и s9 Опции Чтобы использовать опцию x
или s
, вы должны использовать $regex
выражение оператора с $options
оператор. Например, чтобы указать параметры i
и s
,
необходимо использовать $options
для обоих: { имя: { $regex: /acme. *corp/, $options: "si" } } { имя: { $regex: 'acme.*corp', $options: "si " } }
PCRE и JavaScript
Чтобы использовать поддерживаемые PCRE функции в регулярном выражении, которые не
поддерживается в JavaScript, вы должны использовать оператор $regex
и
укажите регулярное выражение в виде строки.
Для соответствия строкам без учета регистра:
Например, регулярное выражение "(?i)a(?-i)cme"
соответствует строкам
Это:
Эти строки соответствуют примеру Регулярное выражение:
"Acme"
"ACME"
. Следующий пример использует $ Regex 9013 9024.
строки полей, соответствующие регулярному выражению "(?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. описание строки." }, { _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.description,leinging. }, { _id: 101, sku: 'abc789', description: 'Первая строка\nВторая строка' }, { _id: 104, sku: 'Abc789', description: 'Артикул начинается с A ' } ]
Многострочное совпадение для строк, начинающихся с указанного шаблона 9S/, $options: 'm' } } )
Пример вывода:
[ { _id: 1'ab'leing. }, { _id: 101, sku: 'abc789', description: 'Первая строка\nВторая строка' }, { _id: 104, sku: 'Abc789', description: 'Артикул начинается с A ' } ]
Без опции m
пример вывода:
[ { _id: 100, артикул: 'abc123', описание: 'Описание в одну строку.' }, { _id: 104, sku: 'Abc789', description: 'Артикул начинается с A' } ]
Если якорь не содержит шаблон $4ex 10940 шаблон
соответствует строке в целом, как в следующем примере:
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 Описание '} ]
без Опция . [ . 9Параметр 0240 x игнорирует пробелы и
комментарии, обозначаемые #
и заканчивающиеся \n
в
шаблон соответствия: var pattern = "abc #код категории\n123 #номер товара" db. Оставить комментарий