Поддержка regex в веб-редакторе ограничена реализацией системы Lucene Regex.
Чтобы использовать regex, включите в настройки фильтра. Зеленая галочка в поле ввода фильтра указывает на успешную проверку корректного regex.
Запросы по умолчанию нечувствительны к регистру. Включите в настройки фильтра, чтобы сделать их чувствительными к регистру.
(обеспечивающее совпадение только полных слов, а не подстрок внутри более длинных слов) недоступно.
Запрос ^abc$ будет работать как ожидается, т. е. находить весь сегмент, в то время как будет находить подстроку abc в любом тексте.
Ограничения
Корректная замена частично отформатированных запросов не поддерживается, например, поиск "Jméno: $1, Příjmení: $2." в тексте "First name<}: Bob, Last name: Dylan." будет заменен на “{>Jméno: Bob, Příjmení: Dylan”
Неподдерживаемые шаблоны
-
Якорь границы слова
\b, используемый для поиска точных слов (работает в редакторе для компьютера). -
\\[1-9]— обратные ссылки (\1, \2 и т. д.), например,(\w+)\s+\1для поиска повторяющихся слов, таких как “hello hello” -
\(\?=|(\?!|(\?<=|(\?<!— просмотр вперед и назад, например,cat(?=\.jpg)для поиска “cat” только в “cat.jpg” -
\(\?:— незапоминающие группы, например, (?:Mr|Mrs|Ms)\. \w+,, но запоминающие группы(Mr|Mrs|Ms)\. \w+поддерживаются и находят такие имена, как “Mrs. Smith”, “Mr. Brown” -
\(\?#— встроенные комментарии, например,\d{4}-(?# year)\d{2}-(?# month)\d{2}(?# day)для поиска “2025-06-25” -
\(\?P<[^>]+>— именованные группы захвата, например, (?P<amount>\d+)\s?(?P<currency>USD|EUR)для поиска “150 USD” и “99 EUR”
Точка (.) как заполнитель для любого одиночного символа
-
c.at: Совпадения: «chat», «coat». НЕ является совпадением: «cat», «cheat» -
wa.ter: Совпадения: «waiter», «waster». НЕ является совпадением: «water» -
s.ip: Совпадения: «skip», «ship», «slip». НЕ является совпадением: «sip», «strip»
? - Ноль или одно вхождение
-
colou?r: Совпадения: «color», «colour» -
g?rain: Совпадения: «grain», «rain» -
books?: Совпадения: «book», «books»
.* - Любое количество символов (включая отсутствие)
-
h.*y: Совпадения: «happy», «history», «honey» -
sa.*d: Совпадения: «sad», «sand», «satisfied» -
m.*ing: Совпадения: «morning», «meeting», «marketing»
.+ - Должен присутствовать как минимум один символ
-
pa.+er: Совпадения: «paper», «painter» -
a.+ed» Совпадения: «asked», «accepted», «allowed»
* - Ноль или более вхождений
-
go*al: Совпадения: «goal», «goooooooal»
+ — одно или несколько вхождений
-
no+: совпадения: «no», «noooooo» -
$1+: совпадения: «$1», «$11», «$111»
Рекомендуется использовать максимально конкретный шаблон, так как открытые шаблоны могут вызвать проблемы с производительностью в редакторе.
Важно
В редакторе есть встроенное ограничение на сложность шаблона регулярного выражения. Слишком широкие шаблоны или шаблоны, в которых активно используются подстановочные знаки, могут быть отклонены как недопустимые регулярные выражения. Чтобы избежать этого:
-
Используйте короткие и конкретные шаблоны.
error-[0-9]\{3\}— это нормально;.*a.*b.*c.*d.*— нет. -
Минимизируйте использование подстановочных знаков. Каждый
.+или.*увеличивает внутреннюю сложность. По возможности используйте классы символов, например[A-Z]+, вместо.*. -
Избегайте длинных альтернатив с повторами. Шаблон вида
(word1|word2|...|word20){2,}может быстро превысить лимит. Это усугубляется, если альтернативы включают несколько слов или знаков препинания, что увеличивает сложность регулярного выражения. -
По возможности фиксируйте одну сторону.
^prefix.*гораздо менее ресурсозатратен, чем.*middle.*.
Если шаблон отклонен, попробуйте сделать его более точным: начните с более длинного фиксированного префикса и сужайте область поиска. Подумайте о сокращении количества альтернатив или их обработке в отдельных шаблонах вместо объединения всего в одно сложное регулярное выражение.
Пример:
Фильтрация адресов электронной почты:
-
Этот шаблон будет находить пробелы и все окружающие слова, что может привести к слишком большому количеству результатов:
.*@.* -
Чтобы ограничить результаты только адресами электронной почты:
[\\w.+\\-]+@[\\w.+\\-]+ -
Чтобы ограничить результаты только адресами электронной почты .com:
[\\w.+\\-]+@[\\w.+\\-]\\.com -
Чтобы ограничить результаты теми, у которых есть цифра в адресах электронной почты:
[\\w.+\\-]*\\d+[\\w.+\\-]*@[\\w.\\-]+
-
cat|dog: Находит: «cat» и «dog» -
red|blue|green: Находит: «red», «blue», «green»
-
[A-Z]+: Находит одну или несколько заглавных букв подряд (последовательность). -
[A-Z]{2,}: Находит любую серию заглавных букв (полезно, например, для поиска акронимов или Strings, написанных заглавными буквами) -
[0-9]\{4\}: Находит четырехзначные числа, например «1999», «2003», «1876» (также находится внутри строки длиннее четырех символов; чтобы ограничить результаты, следует использовать запланированную на будущее опцию «Совпадение слов») -
[A-Za-z0-9]+: Находит любую буквенно-цифровую строку (hello! → hello совпадет, но ! не является частью [A-Za-z0-9]; 100% → совпадет только 100) -
([A-Za-z]+\\d+|\\d+[A-Za-z]+): Находит строго комбинацию цифр и букв, например «user123», «Admin99», «Win11», «5g», «1080p» -
[0-9]{2,4}-[A-Z]{2,3}: Находит номерные знаки, например “12-XY”, “9999-ABC”
-
\\+[0-9]{1,2}: Находит «+40», «+1» -
\\{version: [0-9]+\\}: Находит «{version: 12}», «{version: 13}» -
C:\\\\[A-Za-z]+: Находит «C:\\Users», C:\\Documents, «C:\\Desktop»
-
По умолчанию фильтрация регулярными выражениями будет реализована без учета регистра.
c.at: Находит: «chat», «Chat», «CHAT» и «coat», «Coat», «COAT» -
регулярную фильтрацию можно комбинировать с фильтром пользовательского интерфейса
Группы захвата регулярных выражений распознаются, и весь запрос подсвечивается, например, s(e)g подсветит \"seg\". Группы захвата можно использовать для замены, например, \"Name: Bob\" можно найти с помощью Name: (.*?) и заменить, используя обратную ссылку на Jméno: $1\". Отсутствующие обратные ссылки обрабатываются корректно, т.е. запрос Name: (.*?) с заменой Jméno: $1, Title: $2 будет заменен как Jméno: Bob, Title: $2.
Примеры для обратной ссылки при Заменить:
-
фильтровать
(\\d+),(\\d+)и Заменить на$1.$2для нормализации десятичных разделителей (например, с 5,6 или 35,949 на 5.6 или 35.949) -
фильтровать
(\\d+)\\.(\\d+)и Заменить на$1,$2для нормализации десятичных разделителей (например, с 5.6 или 35.949 на 5,6 или 35,949) -
фильтровать
(\\d\{4\})-(\\d\{2\})-(\\d\{2\})и Заменить на$3/$2/$1для переформатирования даты (например, с 2025-06-05 на 05/06/2025) -
фильтровать
Идентификатор-(\\d{3,})и Заменить наTicket #$1для извлечения номера заявки (например, из в ) -
фильтровать
(cat|dog)и Заменить на$1-$1для того, чтобы Дублировать найденный текст (например, из cat в cat-cat и из dog в dog-dog) -
Необязательная группа: фильтровать
Hello(, (\\w+))?и Заменить наHi $1для преобразования приветствий путем замены \"Hello\" перед именами или отдельно (например, из в и из в )