Javascript preg match: regex — preg_match in JavaScript?

Тестер регулярных выражений и отладчик онлайн

Регулярные выражения
  • JavascriptPCRE
  • флаги

Тестовая строка

Замена
Сохранить это регулярное выражение

Имя: Описание:

Верхние регулярные выражения

Сопоставить строку, не содержащую строку
Проверить, содержит ли строка только числа
Совпадение с элементами URL
Совпадение с адресом электронной почты
Подтверждение IP-адреса
Совпадение или проверка номера телефона
Совпадение с тегом html
Пустая строка
Совпадение дат (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ , MM/DD/YYYY)
Проверяет длину номера и не начинается с 0
Не разрешает использование специальных символов
Соответствует действительному имени хоста
Проверяет дату и время
строка между кавычками + вложенные кавычки
Соответствует скобкам
URL-адрес
соответствует широкому диапазону международных номер телефона
Совпадает с IPv6-адресом
проверка электронной почты
RegEx, разрешающий только номер

Шпаргалка

9абв$
Классы символов
. любой символ кроме новой строки
\ш\д\с слово, цифра, пробел
\Ш \Д \С не слово, цифра, пробел
начало/конец строки
граница слова
Экранированные символы
\. \*\ экранированные специальные символы
\т \н \р вкладка, перевод строки, возврат каретки
\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/ ). Например:

9ack/ ] } }

Вы не можете

использовать выражения оператора $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

43434343

». На « $ 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 .

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *