我有一个字符串"Foo*#*Bar*#*Foo1*#*Bar1"
我想要一个正则表达式,在String.split(String RegularExpression)
中使用时将返回
[0] = "Foo";
[1] = "Bar";
[2] = "Foo1";
[3] = "Bar1";
我尝试了\*#*\
,但它没有返回我想要的内容。
答案 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("\\*#\\*");