2

请查看下面的 REPL 会话。两个正则表达式之间的唯一区别是方括号中的字符顺序。因此,两者都应该产生相同的输出。由于某种原因,第二个正则表达式省略了第一个序列 ( 123)。这里发生了什么事?:)

Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.

scala> """[^+-.,><\[\]]+""".r.findAllIn("123]asdf") foreach { println }
123
asdf

scala> """[^+-><\[\].,]+""".r.findAllIn("123]asdf") foreach { println }
asdf
4

1 回答 1

4

-方括号内也应该转义。例如,它用于指定[0-9]匹配所有数字的范围。

于 2012-10-12T12:06:20.490 回答