-5

私は文字列を持っています"Foo*#*Bar*#*Foo1*#*Bar1"

String.split(String RegularExpression)で使用すると返される正規表現が欲しい

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

試し\*#*\ましたが、欲しいものが返ってこない。

4

4 に答える 4

8

両方のアスタリスクをエスケープする必要があります。

\*#\*

したがって、Javaでは次のようにします。

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

正規表現を試すには、 Regexr.comを試してください。

于 2012-08-06T09:34:42.300 に答える
3
for (String part:"Foo*#*Bar*#*Foo1*#*Bar1".split("\\*#\\*"))
    System.out.println(part);

両方の星に2つの円記号が必要です(Java文字列の場合)。

于 2012-08-06T09:40:08.917 に答える
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文字列で使用するには、すべての円記号を2倍にする必要があることに注意してください。

于 2012-08-06T09:36:44.657 に答える
1
String splitable= "Foo*#*Bar*#*Foo1*#*Bar1";
String[] splitted=splitable.split("\\*#\\*");
于 2012-08-06T09:42:16.450 に答える