Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在scala中使用正则表达式检查文件名的前3个字符_Regex_Scala - Fatal编程技术网

Regex 如何在scala中使用正则表达式检查文件名的前3个字符

Regex 如何在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 }

检查文件名前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 

}
您可以使用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@SurenderRaja
matches
接受一个字符串(不带
.r
),它必须匹配整个模式,如
fileName.substring(0,3).matches(“(?i)[a-z]{3}”)
他们在某个点向
Regex
添加了一个
matches
方法