如何拆分 Java 中的字符串并转义脱字符“^”?

How to split a string in Java with caret symbol '^' escaped?

我正在努力解决 java 中的字符串拆分方法和脱字符 (^)。

输入:

value1^value2^value3\^value3part2

预期输出:

[value1, value2, value3^value3part2]

有人可以为此提供解决方案吗?

我尝试了多种解决方案,但都没有成功。

谢谢。

根据您的评论,如果前面没有 \,您似乎只想在 ^ 上拆分。在这种情况下,您可以使用 negative look-behind 机制 (?<!...) 来测试我们尝试匹配的部分前面是否没有 ....

中描述的正则表达式

在您的情况下,您可以像这样使用它:

String[] values = yourLine.split("(?<!\\)\^");

所以你想拆分

  • on ^(我们需要转义它 \^ 因为 ^ 它是正则表达式元字符之一),
  • (?<!\\) 之前没有 \ - 我们需要转义 \ 两次,一次在正则表达式中,一次在字符串文字中。