исходный код

дал очень простое регулярное выражение со всемиRegex.fromLiteral(".*").

Согласнодокументация: "Возвращает литеральное регулярное выражение для указанной литеральной строки."

Но я не совсем понимаю, что означает «для указанной буквальной строки».

Рассмотрим этот пример:

fun main(args: Array<String>) {
    val regex1 = ".*".toRegex()
    val regex2 = Regex.fromLiteral(".*")
    println("regex1 matches abc: " + regex1.matches("abc"))
    println("regex2 matches abc: " + regex2.matches("abc"))
    println("regex2 matches .* : " + regex2.matches(".*"))  
}

Выход:

regex1 matches abc: true
regex2 matches abc: false
regex2 matches .* : true

так очевидно (и вопреки моим ожиданиям),Regex.fromLiteral() а такжеString.toRegex() вести себя совершенно иначе (я пробовал десятки разных аргументовregex2.matches() - единственный, который вернул истину, был.*)

Означает ли это, что Regex создан сRegex.fromLiteral() всегда соответствует толькоточная строка это было создано с?

Если да, каковы возможные варианты использования такого регулярного выражения? (Я не могу вспомнить ни одного сценария, в котором это было бы полезно)

Ответы на вопрос(1)

Ваш ответ на вопрос