Johannes Faigle
2005-09-06 08:47:42 UTC
Hallo.
Leider kenne ich mich mit regulären Ausdrücken noch nicht sonderlich gut
aus und habe im Internet keine Lösung gefunden, deswegen hoffe ich auf
eure Hilfe.
Folgendes Snippet:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
Pattern p = Pattern.compile("#.*#");
Matcher m = p.matcher("abc#def#ghijkl#mn#op");
boolean b = m.find();
System.out.println(b);
System.out.println(m.group());
System.out.println(m.start());
System.out.println(m.end());
}
}
find() liefert den String #def#ghijkl#mn#. Ich möchte aber nur den
Teilstring #def# finden (und im nächsten Schritt dann #mn#).
Ist es überhaupt möglich ein Pattern zu bauen, dass mir aus dem String
nur #def# liefert? Wenn ja, wie? ("#def#" ist leider keine Lösung, weil
der Inhalt zwischen den Rauten unterschiedlich sein kann) :)
Bin für jeden Tipp dankbar.
Johannes
Ps: Vielleicht kann mir auch jemand kurz erklären warum das
größtmögliche Ergebnis gefunden wird und nicht das erste (was für mich
logischer wäre).
Leider kenne ich mich mit regulären Ausdrücken noch nicht sonderlich gut
aus und habe im Internet keine Lösung gefunden, deswegen hoffe ich auf
eure Hilfe.
Folgendes Snippet:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
Pattern p = Pattern.compile("#.*#");
Matcher m = p.matcher("abc#def#ghijkl#mn#op");
boolean b = m.find();
System.out.println(b);
System.out.println(m.group());
System.out.println(m.start());
System.out.println(m.end());
}
}
find() liefert den String #def#ghijkl#mn#. Ich möchte aber nur den
Teilstring #def# finden (und im nächsten Schritt dann #mn#).
Ist es überhaupt möglich ein Pattern zu bauen, dass mir aus dem String
nur #def# liefert? Wenn ja, wie? ("#def#" ist leider keine Lösung, weil
der Inhalt zwischen den Rauten unterschiedlich sein kann) :)
Bin für jeden Tipp dankbar.
Johannes
Ps: Vielleicht kann mir auch jemand kurz erklären warum das
größtmögliche Ergebnis gefunden wird und nicht das erste (was für mich
logischer wäre).