Hallo Leute,
bin Java-Anfänger und habe ein kleines Problem mit regulären Ausdrücken. Im folgenden beschreibe ich das Problem:
1- Ich habe einen einfachen Satz. Einige Wörter in diesem Satz stehen zwischen eckigen Klammern, z.B "Ich [esse] und [schlafe]"
2- mein Ziel ist nur die strings zwischen eckigen klammern zu finden und zwar als "match word only" mittels regulären Ausdrücken aus dem Packagejava.util.regex.;.
Dafür habe ich folgenden Code geschrieben:
Pattern findStringinSquareBrackets = Pattern.compile("\\[.\]");
Matcher matcherOfWordInSquareBrackets = findStringinSquareBrackets.matcher("Ich [esse] und [schlafe]");
//Iteration in the string
while ( matcherOfWordInSquareBrackets.find() )
{
System.out.println("Patter found! :" outputField.getText().substring(matcherOfWordInSquareBrackets.start(), matcherOfWordInSquareBrackets.end())"");
}
3- Mit dem im Punkt 2 beschriebenen Code bekomme ich aber folgendes Ergebnis: Patter found!: [esse] und [schlafe]
D.h. nicht nur die strings zwischen eckigen Klammern, sondern auch das Wort "und". Das ist aber nicht das, was ich möchte.
4- Was ich als Ergebnis haben möchte, ist folgendes:
Patter found!: [esse]
Patter found!: [schlafe]
Also zwei Treffer von den strings zwischen eckigen Klammern. Nicht mehr, nicht weniger
Weiß jemand wie man so etwas programmiert? Jede Hilfe ist willkommen.
Vielen Dank im voraus.
N.B: benutze java 6
Abou
bin Java-Anfänger und habe ein kleines Problem mit regulären Ausdrücken. Im folgenden beschreibe ich das Problem:
1- Ich habe einen einfachen Satz. Einige Wörter in diesem Satz stehen zwischen eckigen Klammern, z.B "Ich [esse] und [schlafe]"
2- mein Ziel ist nur die strings zwischen eckigen klammern zu finden und zwar als "match word only" mittels regulären Ausdrücken aus dem Packagejava.util.regex.;.
Dafür habe ich folgenden Code geschrieben:
Pattern findStringinSquareBrackets = Pattern.compile("\\[.\]");
Matcher matcherOfWordInSquareBrackets = findStringinSquareBrackets.matcher("Ich [esse] und [schlafe]");
//Iteration in the string
while ( matcherOfWordInSquareBrackets.find() )
{
System.out.println("Patter found! :" outputField.getText().substring(matcherOfWordInSquareBrackets.start(), matcherOfWordInSquareBrackets.end())"");
}
3- Mit dem im Punkt 2 beschriebenen Code bekomme ich aber folgendes Ergebnis: Patter found!: [esse] und [schlafe]
D.h. nicht nur die strings zwischen eckigen Klammern, sondern auch das Wort "und". Das ist aber nicht das, was ich möchte.
4- Was ich als Ergebnis haben möchte, ist folgendes:
Patter found!: [esse]
Patter found!: [schlafe]
Also zwei Treffer von den strings zwischen eckigen Klammern. Nicht mehr, nicht weniger
Weiß jemand wie man so etwas programmiert? Jede Hilfe ist willkommen.
Vielen Dank im voraus.
N.B: benutze java 6
Abou