如何在java中转义[sequence]?

如何在java中转义[sequence]?,java,regex,jakarta-ee,Java,Regex,Jakarta Ee,在用java编写代码时,我需要用“],[”分隔字符串。下面是我的代码 try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) { int i=0; String line; line = reader.readLine(); String[] split = l

在用java编写代码时,我需要用“],[”分隔字符串。下面是我的代码

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
            int i=0;
            String line;
            line = reader.readLine();
            String[] split = line.split("],[");
            StringBuilder sb = new StringBuilder();
            sb.append(split[0]);
            String joined = sb.toString();
            System.out.println(joined);

        } 

请在此提供帮助。

请转义开头的方括号,因为
[
是正则表达式中的一个特殊元字符,表示字符类的开始

String[] split = line.split("],\\[");

]
将在没有字符类开头的情况下匹配文本
]
符号
[
]
之前存在

转义开头方括号,因为
[
是regex中表示字符类开头的特殊元字符

String[] split = line.split("],\\[");

]
将匹配文字
]
符号,如果在
]
之前没有字符类符号的开头
[
存在,则必须转义
[
。例如:

line.split("\\],\\[");
您的代码是:

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
        int i=0;
        String line;
        line = reader.readLine();
        String[] split = line.split("\\],\\[");
        StringBuilder sb = new StringBuilder();
        sb.append(split[0]);
        String joined = sb.toString();
        System.out.println(joined);

    } 

您必须退出
[
。例如:

line.split("\\],\\[");
您的代码是:

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
        int i=0;
        String line;
        line = reader.readLine();
        String[] split = line.split("\\],\\[");
        StringBuilder sb = new StringBuilder();
        sb.append(split[0]);
        String joined = sb.toString();
        System.out.println(joined);

    } 

line.split(\\],\\[”;
line.split(\\],\\\[”;
]
也是一个特殊的正则表达式字符。如果没有转义它,但即使它在今天的Java中工作,正确的做法还是转义它,我会感到惊讶。
]当没有
[
您定义的正则表达式前面的符号。您能删除下一票吗?这并不意味着这是一件明智的事情。有许多不同的正则表达式系统,正确的做法是将两者都转义。我看到正则表达式解析器中关于不匹配括号的错误,因此您不能总是依赖于“失去其特殊意义”的字符@BrianWhite这一切都取决于我们在正则表达式中放置
]
符号的位置。我们不是在讨论任何其他正则表达式风格,因为这个问题明显标记为java。在所有其他正则表达式风格中,它也完全基于位置。
]
也是一个特殊的正则表达式字符。如果你没有得到一个关于不匹配括号的错误,如果它没有被转义,我会感到惊讶,但即使它在今天的Java中工作,正确的做法还是转义它。
]
在没有
[
您定义的正则表达式前面的符号。您能删除下一票吗?这并不意味着这是一件明智的事情。有许多不同的正则表达式系统,正确的做法是将两者都转义。我看到正则表达式解析器中关于不匹配括号的错误,因此您不能总是依赖于“失去其特殊意义”的字符@BrianWhite这完全取决于我们在正则表达式中放置
]
符号的位置。我们不是在讨论任何其他正则表达式风格,因为问题明显标记为java。在所有其他正则表达式风格中,它也完全基于位置。