Regex 如何在scala中使用正则表达式检查文件名的前3个字符
检查文件名前3个字符是否为字符串的scala代码是什么 我希望返回一个布尔值,如果文件名的前3个字符是字母,那么需要返回true,否则返回falseRegex 如何在scala中使用正则表达式检查文件名的前3个字符,regex,scala,Regex,Scala,检查文件名前3个字符是否为字符串的scala代码是什么 我希望返回一个布尔值,如果文件名的前3个字符是字母,那么需要返回true,否则返回false val fileName = "ABC1234.dat" val regex = "[A-Z]*".r val result = fileName.substring(0,3) match { case regex(fileName) => true case _ => false }
val fileName = "ABC1234.dat"
val regex = "[A-Z]*".r
val result = fileName.substring(0,3) match {
case regex(fileName) => true
case _ => false
}
您可以使用3次匹配字符a-zA-Z[a-zA-Z]{3}
或使用\\p{L}{3}
匹配来自任何语言的任何字母,并检查选项是否为非空
val fileName = "ABC1234.dat"
val regex = "[A-Za-z]{3}".r
regex.findFirstIn(fileName).nonEmpty
输出
res0: Boolean = true
如果您想在注释中使用带有匹配项的子字符串,则matches将字符串作为正则表达式,并且必须匹配整个模式
fileName.substring(0,3).matches("(?i)[a-z]{3}")
注意如果字符串短于指定的索引,则子字符串将给出一个
StringIndexOutOfBoundsException
,并且使用带有选项的findFirstIn将返回false。确定,我将尝试此操作,但我也尝试了以下代码,它会抛出错误以及scala>fileName.substring(0,3)。匹配((?I)[a-z]”。r)):1:错误:';'应为“”,但找到“”。fileName.substring(0,3).matches((?i)[a-z].”.r))fileName.substring(0,3).matches((?i)[a-Za-z]{3})工作于表单,谢谢您的回答also@SurenderRajamatches
接受一个字符串(不带.r
),它必须匹配整个模式,如fileName.substring(0,3).matches(“(?i)[a-z]{3}”)
他们在某个点向Regex
添加了一个matches
方法