Почему, если взять это регулярное выражение, мои две последние строки не совпадают, но только последняя не должна сравниваться с этим
Regex("""((([0-1][0-9]|2[0-3]):([0-5]\d|60):([0-5]\d|60))\n)+""")
, и когда я пишу так
Regex("""((([0-1][0-9]|2[0-3]):([0-5]\d|60):([0-5]\d|60))\n?)+""")
последняя строкане подходит это регулярное выражение
мой текст
13:15:19
07:26:57
10:00:03
19:56:14
13:15:19
00:40:31
я читаю его из файла и затем сопоставляю их вот так
val format = Regex("""(([0-1]\d:|2[0-4]:)([0-5]\d|60)(:[0-5]\d|60)(\n)?)+""")
.matches(File(inputName).readText())
, но это не правильно, потому что если между двумястроки не содержат \ n, он не будет соответствовать форматам и, как я уже говорил, даже это регулярное выражение не видит последнюю строку.Что я делаю не так?я уже сделал с этим кодом, но не знаю, что не так с другим решением
File(inputName).readLines().map { it ->
val f = Regex("""(([0-1]\d:|2[0-4]:)([0-5]\d|60)(:[0-5]\d|60)(\n)?)""")
.matches(it)
if (!f) {
throw IllegalArgumentException("File format")
}
}
это две строки
val ss = "00:40:31\n" +
"07:26:57\n" +
"10:00:03\n" +
"13:15:19\n" +
"13:15:19\n" +
"19:56:14"
println(Regex("""(([0-1]\d:|2[0-4]:)([0-5]\d|60)(:[0-5]\d|60)(\n|$))+""")
.matches(ss))
println(File(inputName).readText())
val format = Regex("""(([0-1]\d:|2[0-4]:)([0-5]\d|60)(:[0-5]\d|60)(\n|$))+""")
.matches(File(inputName).readText())
println(format)