Hallo,
ich habe einige Probleme bei der Formulierung regulärer Ausdrücke. Ich möchte einen beliebigen Text in seine Bestandteile zerlegen, d. h. Wörter sowie Interpunktionszeichen sollen am Ende jeweils als eigenes Element vorliegen.
Dazu habe ich zunächst folgendes Beispielprogramm erstellt:
Nun habe ich das Problem, dass Ausrufezeichen und Redezeichen ein zusammenhängendes Element bilden, obwohl ich sie separat haben möchte und der Gedankenstrich sowie das letzte Wort des Texts werden gar nicht erfasst.
Das liegt natürlich an meinem regulären Ausdruck, allerdings weiß ich nicht, wie ich den geeignet umformulieren muss, um das gewünschte Ergebnis zu erhalten.
Ich hoffe mir kann jemand weiterhelfen.
Vielen Dank schonmal und viele Grüße
ich habe einige Probleme bei der Formulierung regulärer Ausdrücke. Ich möchte einen beliebigen Text in seine Bestandteile zerlegen, d. h. Wörter sowie Interpunktionszeichen sollen am Ende jeweils als eigenes Element vorliegen.
Dazu habe ich zunächst folgendes Beispielprogramm erstellt:
Code:
import java.util.*; import java.util.regex.*; public class Test { public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); String text = "Er sagte: \"Bis bald!\" - und verschwand."; String regex = "(\\p{Punct}*)(\\p{Alnum}+)(\\p{Punct}*)\\p{Space}"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(text); while (m.find()) { for (int i = 1; i <= m.groupCount(); i++) { if (!m.group(i).equals("")) al.add(m.group(i)); } } System.out.println(al); } }
Das liegt natürlich an meinem regulären Ausdruck, allerdings weiß ich nicht, wie ich den geeignet umformulieren muss, um das gewünschte Ergebnis zu erhalten.
Ich hoffe mir kann jemand weiterhelfen.
Vielen Dank schonmal und viele Grüße
Comment