正则表达式看不到最后一行

时间:2018-10-28 13:58:27

标签: regex kotlin

为什么要使用此正则表达式,我的最后两行不匹配,但只有最后一行不能与之比较

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")
    }
}

this two lines

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)

0 个答案:

没有答案