Поддержка регулярных выражений в веб-редакторе ограничена реализацией движка Lucene Regex.
Чтобы использовать регулярные выражения, включите в настройках фильтра. Зеленая галочка в поле ввода фильтра указывает на успешную валидацию корректного регулярного выражения.
Запросы по умолчанию не чувствительны к регистру. Включите в настройках фильтра, чтобы сделать их чувствительными к регистру.
(обеспечивая совпадение только полных слов, а не подстрок в более длинных словах) недоступно.
Запрос ^abc$ будет работать как ожидается, т.е. совпадать с целым сегментом, в то время как будет совпадать с подстрокой abc в любом тексте.
Ограничения
Корректная замена частично отформатированных запросов не поддерживается, например, поиск "Jméno: $1, Příjmení: $2." в тексте "\{b\>Имя<}: Bob, \{biu\>Фамилия\<biu\}: Dylan." будет заменен на “{>Jméno: Bob, Příjmení: Dylan\<b\}”
Неподдерживаемые шаблоны
-
Якорь границы слова
\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}-(?# год)\d{2}-(?# месяц)\d{2}(?# день)для совпадения с “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”
+ - Одно или несколько вхождений
-
нет+: Совпадения: “нет”, “нетуууу” -
$1+: Совпадения: “$1”, “$11”, “$111”
Рекомендуется использовать как можно более специфичный шаблон, так как открытые шаблоны могут вызвать проблемы с производительностью в редакторе.
Важно
Редактор имеет встроенное ограничение на то, насколько сложным может быть шаблон regex. Шаблоны, которые слишком широки или сильно используют подстановочные знаки, могут оказаться недействительными regex. Чтобы избежать этого:
-
Держите шаблоны короткими и специфичными.
error-[0-9]{3}нормально;.*a.*b.*c.*d.*- нет. -
Минимизируйте подстановочные знаки. Каждый
.+или.*увеличивает внутреннюю сложность. Предпочитайте классы символов, такие как[A-Z]+, вместо.*, когда это возможно. -
Избегайте длинных альтернатив с повторениями. Шаблон, такой как
(word1|word2|...|word20){2,}, может быстро превысить лимит. Это усиливается, когда альтернативы включают несколько слов или знаков препинания, что увеличивает сложность regex. -
Закрепите одну сторону, когда это возможно.
^prefix.*гораздо дешевле, чем.*middle.*.
Если шаблон отклонен, попробуйте сделать его более целенаправленным: начните с более длинного фиксированного префикса и сужайте оттуда. Рассмотрите возможность уменьшения количества альтернатив или обработки их в отдельных шаблонах, вместо того чтобы объединять все в один сложный regex.
Пример:
Фильтрация адресов электронной почты:
-
Этот шаблон будет совпадать с пробелами и всеми окружающими словами с потенциально слишком большим количеством результатов:
.*@.* -
Чтобы ограничить результаты всеми адресами электронной почты:
[\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,}: Совпадения с любой серией заглавных букв (полезно, например, для совпадения с аббревиатурами или строками, написанными заглавными буквами) -
[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". Группы захвата могут быть использованы для замены, например, “Имя: Боб” можно найти по Имя: (.*?) и заменить, используя обратную ссылку на Имя: $1.” Недостающие обратные ссылки обрабатываются корректно, т.е. запрос Имя: (.*?) с заменой Имя: $1, Заголовок: $2 будет заменен на Имя: Боб, Заголовок: $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) -
фильтровать
ID-(\d{3,})и заменитьБилет #$1для извлечения номера билета (например, с на ) -
фильтровать
(cat|dog)и заменить$1-$1для дублирования совпадающего текста (например, с cat на cat-cat и с dog на dog-dog) -
Необязательная группа: фильтровать
Привет(, (\w+))?и заменитьПривет $1для преобразования приветствий, заменяя "Привет" перед именами или само по себе (например, с на и с на )