java中对[的正则匹配为什么需要用两个\转义?
最近在使用Hive中的Serde时,通过正则表达式对不规则数据进行处理时,需要对文本文件中一行带有中括号的字符进行匹配,例如:
那么正则表达式匹配这个 [ 就需要写成 \\[。
因为Hive是用Java开发的,Java中一个\代表转义,而在正则表达式中[ ]、{ }都有特殊含义,同样也需要对其进行转义,那么正则表达式对[ ]和{ }字符本身的表示就是 \[ 、 \]、 \{ 、 \}。所以\\[ 第一个\只是对后面\的转义。
正因如此,对[ 的匹配需要用两个\。