我在这里有这个字符串:M412 Rex | -HEADSHOT-。我想在|上拆分它以获得名字,但是我的代码无法正常工作。

        System.out.println("weaponPart = " + weaponPart);
        String[] weaponPartParts = weaponPart.split(" | ");
        for (String s : weaponPartParts) {
            System.out.println("s = " + s);
        }
        System.out.println();


打印输出:

weaponPart = M412 Rex | -HEADSHOT-
s = M412
s = Rex
s = |
s = -HEADSHOT-


我假设它与正则表达式匹配有关,但实际上是什么情况?

最佳答案

您必须对正则表达式中特殊字符|进行两次转义:\\|。 (它的意思是“或”)

换句话说,您的实际模式意味着“找到空间或空间时分裂”。

因此,好的做法是:

String[] weaponPartParts = weaponPart.split(" \\| ");


顺带一提,这些特殊字符\ | ( ) [ { ^ $ * + ? .是“脏十二打”。

关于java - 正则表达式分割字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20023110/

10-13 07:16