НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
531 of 1310 menu

Класс RegexOption

Класс RegexOption представляет собой перечисление (enum class), которое содержит различные опции для настройки поведения регулярных выражений. Эти опции используются при создании объекта Regex для изменения стандартного поведения поиска и сопоставления с шаблоном.

Импорт

import kotlin.text.RegexOption

Синтаксис

enum class RegexOption { IGNORE_CASE, MULTILINE, LITERAL, UNIX_LINES, COMMENTS, DOT_MATCHES_ALL, CANON_EQ }

Опции

IGNORE_CASE - игнорирует регистр символов при поиске соответствий.

MULTILINE - включает многострочный режим, где символы ^ и $ соответствуют началу и концу каждой строки, а не всего текста.

LITERAL - интерпретирует шаблон как буквальную строку, специальные символы теряют свое специальное значение.

UNIX_LINES - включает режим UNIX строк, где только символ \n считается признаком конца строки.

COMMENTS - разрешает использование комментариев и пробелов в шаблоне (пробелы игнорируются, # начинает комментарий до конца строки).

DOT_MATCHES_ALL - включает режим, где символ . соответствует любому символу, включая символы конца строки.

CANON_EQ - включает каноническое эквивалентное сравнение символов.

Пример

Использование опции IGNORE_CASE для поиска без учета регистра:

val regex = Regex("hello", setOf(RegexOption.IGNORE_CASE)) val res = regex.containsMatchIn("HELLO world") println(res)

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

Boolean true

Пример

Использование опции MULTILINE для поиска в многострочном тексте:

val text = "first line\nsecond line\nthird line" val regex = Regex("^second", setOf(RegexOption.MULTILINE)) val res = regex.find(text)?.value println(res)

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

String "second"

Пример

Использование опции DOT_MATCHES_ALL для поиска с символом точки:

val text = "line1\nline2\nline3" val regex1 = Regex("line1.line2") val res1 = regex1.matches(text) val regex2 = Regex("line1.line2", setOf(RegexOption.DOT_MATCHES_ALL)) val res2 = regex2.matches(text) println("Without DOT_MATCHES_ALL: $res1") println("With DOT_MATCHES_ALL: $res2")

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

Without DOT_MATCHES_ALL: false With DOT_MATCHES_ALL: true

Пример

Комбинирование нескольких опций с помощью оператора or:

val options = RegexOption.IGNORE_CASE or RegexOption.MULTILINE val regex = Regex("^test", options) val text = "TEST line1\nTest line2\ntest line3" val matches = regex.findAll(text).map { it.value }.toList() println(matches)

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

List<String> ["TEST", "Test", "test"]

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

  • функцию contains,
    для проверки наличия подстроки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить