斯卡拉。Regexp可以';不要删除符号^

斯卡拉。Regexp可以';不要删除符号^,regex,scala,Regex,Scala,我需要把句子拆分成单词,去掉多余的字符 我为此准备了regexp: val wordCharacters = """[^A-z'\d]""".r 现在我有一条规则,可以用它来处理下一步的任务: wordCharacters.split(words) .filterNot(_.isEmpty) 其中words我需要解析的任何句子 但问题是,如果我试图处理“汽车:地毯,如,,,,java:javascript!!&@$%^&”我会多得到一个单词^。尝试更改我的正则表达式而不使用^我在不同

我需要把句子拆分成单词,去掉多余的字符

我为此准备了regexp:

val wordCharacters = """[^A-z'\d]""".r
现在我有一条规则,可以用它来处理下一步的任务:

wordCharacters.split(words)
    .filterNot(_.isEmpty)
其中
words
我需要解析的任何句子

但问题是,如果我试图处理
“汽车:地毯,如,,,,java:javascript!!&@$%^&”
我会多得到一个单词
^
。尝试更改我的正则表达式而不使用
^
我在不同情况下遇到了更多问题

有什么办法可以解决吗

附笔。 如果有人想玩它,请尝试或编写以下代码:

    val wordCharacters = """[^A-z'\d]""".r
    val stringToInt =
      wordCharacters.split("car: carpet, as,,, java: javascript!!&@$%^&")
        .filterNot(_.isEmpty)
        .toList
    println(stringToInt)
预期结果是:
列表(汽车、地毯、as、java、javascript)

我很想从
\W
开始并从那里展开

“\\W+”.r.split(“汽车:地毯,as,,,java:javascript!!&@$%^&”)
//res0:Array[String]=数组(汽车、地毯、as、java、javascript)

我很想从
\W
开始,然后从那里展开

“\\W+”.r.split(“汽车:地毯,as,,,java:javascript!!&@$%^&”)
//res0:Array[String]=数组(汽车、地毯、as、java、javascript)

零件
A-z
不是您想要的。您可能会假设较低的
a
紧跟在较高的
Z
之后,但是在这两者之间还有一些其他字符,其中一个是
^

因此,将正则表达式更正为

"""[^A-Za-z'\d]""".r
会解决这个问题

查看字符的顺序:
零件
A-z
并非您想要的。您可能会假设较低的
a
紧跟在较高的
Z
之后,但是在这两者之间还有一些其他字符,其中一个是
^

因此,将正则表达式更正为

"""[^A-Za-z'\d]""".r
会解决这个问题

查看字符的顺序:

检查字符顺序是一个很酷的主意(我的期望真的不同)。它解释了我的问题。检查字符顺序是一个很酷的主意(我的期望真的不同)。这就解释了我的问题