String str = "#aaa# #bbb# #ccc# #ddd#"
"aaa"、 "bbb"、 "ccc"、 "ddd"( "##"のペアと "##"の番号の部分文字列をどのように得ることができますか?正規表現を使用して)不明であるjavaで正規表現を使用して部分文字列を取得する方法は?
おかげ
String str = "#aaa# #bbb# #ccc# #ddd#"
"aaa"、 "bbb"、 "ccc"、 "ddd"( "##"のペアと "##"の番号の部分文字列をどのように得ることができますか?正規表現を使用して)不明であるjavaで正規表現を使用して部分文字列を取得する方法は?
おかげ
:
Pattern p = Pattern.compile("#(\\w+)#");
String input = "#aaa# #bbb# #ccc# #ddd#";
Matcher m = p.matcher(input);
List<String> parts = new ArrayList<String>();
while (m.find())
{
parts.add(m.group(1));
}
// parts is [aaa, bbb, ccc, ddd]
はこれを試してみてください?!
:結果の配列内の各位置が空である最初のものを除いて、部分文字列を含んでいますString str = "1aaa2 3bbb4 5ccc6 7ddd8";
String[] data = str.split("[\\d ]+");
regexを使用して
...か何かを使用して、それを行うための別の方法です。 regexesに関する多くの質問と同様に、OPは彼/彼女の要件を明確に指定していません。 –
申し訳ありません。私はちょうど私の質問を編集しています=) – yvetterowe
ここではまだそのようなStringTokenizer
String str="#aaa# #bbb# #ccc# #ddd#";
//# and space are the delimiters
StringTokenizer tokenizer = new StringTokenizer(str, "# ");
List<String> parts = new ArrayList<String>();
while(tokenizer.hasMoreTokens())
parts.add(tokenizer.nextToken());
-1に変更してください。 _ "' StringTokenizer'は、互換性のために保持されているレガシークラスです。新しいコードでは使用しないでください。この機能を探している人は 'String'メソッドまたはjava.util.regexパッケージを使用することをお勧めします代わりに代わりに。 "_ http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html –
ok。あなたの言ってる事がわかります。 Java 7(http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html)から入手できますが、このクラスは将来のリリースでは使用できません。あなたのコメントの更新で私の答えを得ました:-) – coderplus
あなたは正しいです:-) – coderplus
ええ、その作品=)。正規表現で "w +"が意味することを私に説明してください。ありがとう=) – yvetterowe
標準正規表現の構文です。 [私の答えにリンクされたJavaDocs](http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)を読んでください。それらが十分に明確でない場合は、http://regular-expressions.infoで知ることができます。 –
hmm入力文字列を "#aaa##bbb bbb##ccc##ddd#"に変更すると、パーツは[aaa、null、ccc、ddd]になります。あなたは "bbb bbb"(部分文字列内の単語の間にスペースがある)というより一般的な方法を理解できますか?ありがとう= D – yvetterowe