我尝试在字符串中定义 \b\t\n\f\r\"\'\\
但得到
无效的转义序列(有效的是\b\t\n\f\r\"\'\\)
。
我正在从网络上获取加密数据,就像这样。
String testString="4sXuWJ4juj\/RS46l7xFLK|awhVBqNga\/BbyNt7t3Q\/DJ7OhHNix8G2PDyAFSGw+1E=
";
这里我想根据|
拆分字符串。所以我想尝试放入字符串。知道如何根据 | 拆分吗?在 Java 中。
任何想法,如果我从 web.using 某些 spitting 参数获取这种类型的字符串数据 testString,如何可能拆分。像 |、\和其他。
最佳答案
当您在 Java 中将正则表达式定义为字符串文字时,将进行两种不同的转义:
- 首先,Java 编译器解释字符串中的转义序列。它支持字符串文字中的八个转义序列
- 其次,Regex 引擎在编译器解释 Java 转义序列后解释字符串。 Regex 支持自己的转义序列,让您转义它的元字符。特别是,它支持
\|
。
但是,为了让 Regex 引擎“看到”\|
,您需要为 Java 编译器转义斜杠,即编写 \\|
。
为了避免在这种情况下出现混淆,我更喜欢从元字符创建一个字符类,例如[|]
、[*]
、[+]
等。通过这种方式,您不必对许多常见的元字符进行双重转义。当然,这个技巧并不通用——例如,它不适用于]
。
关于java - 定义字符串时在java中无效的转义序列(有效的是\b\t\n\f\r\"\'\\),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234289/