Scala Regex。奇怪的正则表达式

时间:2012-10-12 12:03:30

标签: regex scala

请查看下面的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

1 个答案:

答案 0 :(得分:4)

方括号内的

-也应该被转义。例如,它用于指定[0-9]等范围以匹配所有数字。