Функция escape

Функция escape преобразует строку, экранируя все специальные символы, которые имеют особое значение в регулярных выражениях. Это полезно, когда необходимо искать строку, содержащую специальные символы.

Для экранировки функция использует специальные метасимволы \Q и \E: Все символы между этими символами воспринимаются как обычные литералы, а не как специальные символы регулярных выражений. Это безопасный способ экранировать все специальные символы в строке.

Функция экранирует следующие символы: . + * ? ^ $ [ ] ( ) { } | \

Импорт

kotlinimport kotlin.text.Regex

Синтаксис

kotlinfun escape(literal: String): String

Пример

Экранируем строку с специальными символами:

kotlinval input = "file.txt"
val res: String = Regex.escape(input)
println(res)

Результат выполнения кода:

kotlin\Qfile.txt\E

Пример

Экранируем строку с несколькими специальными символами:

kotlinval input = "price: .99+tax"
val res: String = Regex.escape(input)
println(res)

Результат выполнения кода:

kotlin\Qprice: .99+tax\E

Пример

Используем экранированную строку для поиска значения:

kotlinval searchText = "file.txt"
val escapedPattern = Regex.escape(searchText)
val regex = Regex(escapedPattern)

val input1 = "download file.txt please"
val input2 = "download filextxt please"

println(regex.containsMatchIn(input1))
println(regex.containsMatchIn(input2))

Результат выполнения кода:

kotlintrue
false

Пример

Экранирование строки с метасимволами:

kotlinval input = "a+b*c?d[e]f{g}h(i)j|k\l"
val res: String = Regex.escape(input)
println(res)

Результат выполнения кода:

kotlin\Qa+b*c?d[e]f{g}h(i)j|k\l\E

Смотрите также

  • функцию escapeReplacement,
    которая экранирует символы строки замены
  • функцию matchEntire,
    для проверки полного соответствия строки регулярному выражению
  • функцию replace,
    которая заменяет совпадения в строке