1

这是我要拆分的示例字符串。我正在使用string.split("\\|"). 但是由于字符串本身具有双派克字符,因此我得到了 "" 。

我想检查是否用 pike|或 double pike拆分字符串||

aaa|bbb|ccc|ddd||eee|iii||
4

5 回答 5

3

您可以使用

string.split("\\|\\|?")

?使得第二个管道是可选的。

您可能还想使用:

string.split("\\|+")

如果您连续有两个以上,则为“一个或多个|”。

于 2013-03-15T03:56:53.443 回答
2

您可以指定一个出现范围:

"aaa|bbb|ccc|ddd||eee|iii||".split("\\|{1,2}")
于 2013-03-15T03:57:47.860 回答
2

您可以改用此正则表达式:-

String regex = "\\|\\|?";
str.split(regex);
于 2013-03-15T03:58:10.343 回答
1

试试这个:

string.split("\\|{1,2}");
// A pipe ------^ ^ ^
// once           | |
//      or twice    |
于 2013-03-15T03:59:29.300 回答
0

你可以试试这个正则表达式:String[] splits = yourString.split("[|||]+");+ 之后将连续的分隔符视为一个。如果您不想要这个,您可以删除加号。示例如下所示:

public class RegexTest {

    public static void main(String[] args) {
        String yourString = "aaa|bbb|ccc|ddd||eee|iii||";
        String[] splits = yourString.split("[|||]+");
        for (String split : splits) {
            System.out.println(split);
        }

    }
}
于 2013-03-15T04:25:15.820 回答