定义String时java中无效的转义序列(有效转义序列为\ b\t \n\f\r \"\'\\)

Dha*_*tri 1 java regex string android

我试着\b \t \n \f \r \" \' \\在字符串里面定义但是得到了 Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ).

我正在从网上获取加密数据,就像这样.

String testString="4sXuWJ4juj\/RS46l7xFLK|awhVBqNga\/BbyNt7t3Q\/DJ7OhHNix8G2PDyAFSGw+1E=";

在这里,我想基于分裂字符串|.所以我想尝试放入字符串.任何想法如何拆分| 在java中.

任何想法,如何分裂,如果我从web.in 获取这种类型的字符串数据testString使用某些spitting参数.喜欢|,\和其他人.

das*_*ght 5

在Java中将正则表达式定义为字符串文字时,会发生两种不同的转义:

  • 首先,Java编译器解释字符串中的转义序列.它支持字符串文字中的八个转义序列
  • 其次,Regex引擎在编译器解释Java转义序列之后解释字符串.正则表达式支持自己的转义序列,让你逃脱它的元字符.特别是,它支持\|.

但是,为了让Regex引擎"看到" \|,你需要转义Java编译器的斜杠,即写入\\|.

为了避免这样的情况混乱,我宁愿从元字符使字符类,如[|],[*],[+],等.通过这种方式,您不必双重转义许多常见的元字符.当然,这个技巧并不普遍 - 例如,它不起作用].