Regex Scala正则表达式。奇异正则表达式

Regex Scala正则表达式。奇异正则表达式,regex,scala,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. sc

请看下面的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
-内部方括号也应该转义。例如,它用于指定[0-9]等范围以匹配所有数字。

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

也可以放置到方括号中的最后一个位置,如:[^+,。>也可以放置到方括号中的最后一个位置,如:[^+,。>