Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
540 of 1319 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить