正则转义之问

在java中,比如某个正则表达式 rex = "\\|",明明用到的只是|,它却为什么需要两个反斜杠呢?

其一,正则表达式中|是特殊字符,需要转义,前加反斜杠

其二,java语言中,有效逃脱序列(valid escape sequence)是限定的,它们是(valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ ),因此\|是非法的,为了最终被正则引擎解义为非特殊含义字符|,字符串"\\|"被传送到正则解义引擎前就已经可以解义为"\|"了,因为"\\"是有效逃脱序列,它所表示的字符实际是"\",综上。

 

你可能感兴趣的:(java,正则表达式,F#)