我需要编写一个将字符串作为输入的函数。此函数将返回List [String]。我必须在此函数中使用正则表达式“ \ w +”作为此任务的要求。因此,当给定一个随机文本的行字符串,并在其中包含一些实际单词时,我需要添加所有这些“正确”单词并将其添加到要返回的列表中。我还必须使用“ .findAllIn”。我尝试了以下
def foo(stringIn: String) : List[String] = {
val regEx = """\w+""".r
val match = regEx.findAllIn(s).toList
match
}
但是它只是返回我传递给函数的字符串。
答案 0 :(得分:2)
match
是Scala中的保留关键字。因此,您只需要替换它即可。
def foo(stringIn: String) : List[String] = {
val regEx = """\w+""".r
regEx.findAllIn(stringIn).toList
}
scala> foo("hey. how are you?")
res17: List[String] = List(hey, how, are, you)
\\w
是单词字符的pattern,在当前的正则表达式上下文中等于[a-zA-Z_0-9]
,匹配大小写字母,数字和下划线。
\\w+
用于上述情况的一次或多次发生。
scala> foo("hey")
res18: List[String] = List(hey)
在上述情况下,正则表达式没有分割内容。因此返回原始字符串。
scala> foo("hey-hey")
res20: List[String] = List(hey, hey)
-
不是\\w
的一部分。因此,它被-