如何用分隔符拆分字符串?

时间:2012-08-06 09:33:16

标签: java

我有一个字符串"Foo*#*Bar*#*Foo1*#*Bar1"

我想要一个正则表达式,在String.split(String RegularExpression)中使用时将返回

[0] = "Foo";
[1] = "Bar";
[2] = "Foo1";
[3] = "Bar1";

我尝试了\*#*\,但它没有返回我想要的内容。

4 个答案:

答案 0 :(得分:8)

你需要逃避两个星号:

\*#\*

所以在Java中你会做这样的事情:

String[] str = mystring.split("\\*#\\*"); 

尝试使用Regexr.com来试验正则表达式。

答案 1 :(得分:3)

for (String part:"Foo*#*Bar*#*Foo1*#*Bar1".split("\\*#\\*"))
    System.out.println(part);

我们在两个星上都需要两个反斜杠(在java字符串中)。

答案 2 :(得分:2)

对于您的示例,

List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\w+");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    matchList.add(regexMatcher.group());
}

将返回subjectString中所有字母数字子字符串的列表。

或者,您可以拆分分隔符:

String[] splitArray = subjectString.split("\\*#\\*");

请注意,您必须将所有反斜杠加倍,以便在Java字符串中使用。

答案 3 :(得分:1)

String splitable= "Foo*#*Bar*#*Foo1*#*Bar1";
String[] splitted=splitable.split("\\*#\\*");