cod*_*ter 0 regex file-extension scala case match
val file_name="D:/folder1/folder2/filename.ext" //filename
val reg_ex = """(.*?).(\\\\w*$)""".r //regex pattern
file_name match {
case reg_ex(one , two) =>s"$two is extension"
case _ => println(" file_reg_ex none")
}
Run Code Online (Sandbox Code Playgroud)
我想使用scala regex从上面提取文件扩展名,即“ ext”,使用match&case。
我正在使用上面的正则表达式,这将导致不匹配的情况。
任何指向正则表达式教程的指针都会有所帮助。
一些小的调整。
val reg_ex = """.*\.(\w+)""".r
file_name match {
case reg_ex(ext) =>s"$ext is extension"
case _ => println("file_reg_ex none"); ""
}
Run Code Online (Sandbox Code Playgroud)
只需要一个捕获组。忽略最后一个点之前的所有内容\.(已转义,因此是一个点而不是“任何字符”),然后捕获其余部分。
默认值case _不应做更多println。它应返回与匹配项相同的类型。