使用正则表达式和转义符拆分Java字符串



我需要在以下条件下拆分一个字符串。

  1. 使用/拆分,如果具有/则不应拆分
  2. 使用=进行拆分,如果具有=则不应进行拆分

基本上是在寻找TWO正则表达式,它们在上述条件下分裂,并在具有转义符的情况下避免。

您可以尝试在此处使用查找:

String input = "Hello/World";
String[] parts = input.split("(?<!\\)[/=]");

上面的单个正则表达式涵盖了这两种拆分情况。它使用了一个负查找,它断言紧接在/=之前的字符是而不是反斜杠。

您可以使用负查找(?<!\\)来断言左边的不是反斜杠。

然后使用字符类匹配1+倍的正斜杠或等号[/=]+

String regex = "(?<!\\)[/=]+";

Java演示| Regex演示

最新更新