Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Spartacus Leto Ist hier raus!
Anmeldungsdatum: 27.08.2005 Beiträge: 5659
|
(#948207) Verfasst am: 06.03.2008, 10:36 Titel: Java, Reguläre Ausdrücke, brache Hilfe! |
|
|
Ich habe folgendes Problem: Ich möchte diesen String:
Unser Kai fährt nach Kaiserslautern.
Kais Schwester wohnt dort.
Kai musste ihr versprchen, sie nicht zu besuchen.
Kain ist eine fiktive Figur.
Kains Essen schmeckte nicht.
Zu diesem String machen:
Unser Anton fährt nach Kaiserslautern.
Antons Schwester wohnt dort.
Anton musste ihr versprchen, sie nicht zu besuchen.
Kain ist eine fiktive Figur.
Kains Essen schmeckte nicht.
Ich habe dafür folgendes Java-Programm geschrieben: Mir fehlt allerdings der passende Reguläre Ausdruck.
Code: | import java.util.regex.*;
public class regex2 {
public static void main(String[] args) {
String text = "Unser Kai fährt nach Kaiserslautern.\nKais Schwester wohnt dort.\nKai musste ihr versprchen, sie nicht zu besuchen.\nKain ist eine fiktive Figur.\nKains Mal tat weh.";
String ersetzeName = "Kai";
String ersetzeMit = "Anton";
System.out.println("");
System.out.println(text);
Pattern p = Pattern.compile("\\b"+ersetzeName+"\\b");
Matcher m = p.matcher(text);
text = m.replaceAll(ersetzeMit);
System.out.println("");
System.out.println(text);
}
}
|
|
|
Nach oben |
|
 |
Picard Mein eigener Captain
Anmeldungsdatum: 15.08.2005 Beiträge: 26
Wohnort: Hier
|
(#991982) Verfasst am: 01.05.2008, 01:00 Titel: replaceAll() |
|
|
Es gibt auch einfachere Möglichkeiten als Reguläre Ausdrücke:
Code: |
public class regex2 {
public static void main(String[] args) {
String text = "Unser Kai fährt nach Kaiserslautern.\nKais Schwester wohnt dort.\nKai musste ihr versprchen, sie nicht zu besuchen.\nKain ist eine fiktive Figur.\nKains Mal tat weh.";
System.out.println( text.replaceAll("Kai", "Anton") );
}
}
|
Je nach Java-Version sollte dies auch funktionieren. Einfach mal ausprobieren.
Gruß
Picard
_________________ Die Moral ist die Rache der geistig Armen an den Klügeren (Nietzsche)
|
|
Nach oben |
|
 |
Kramer postvisuell
Anmeldungsdatum: 01.08.2003 Beiträge: 30878
|
(#991998) Verfasst am: 01.05.2008, 01:18 Titel: Re: Java, Reguläre Ausdrücke, brache Hilfe! |
|
|
Leto hat folgendes geschrieben: | Mir fehlt allerdings der passende Reguläre Ausdruck. |
Du meinst einen, der erkennt, dass er das "Kai" bei "Kais" ersetzen soll, aber nicht bei "Kain" oder "Kaiserslautern"? Da könnte man bestimmt einen basteln, der genau auf den Beispieltext passt, aber ich vermute mal, es geht dir um einen regulären Ausdruck, der sich auch auf "Klaus" "Klause" und "Klausur" anwenden lässt, also nur den Namen "Klaus" ersetzt, aber nicht das "Klaus" in "Klausur". Das geht mit regulären Ausdrücken nicht, die analysieren ja nur Zeichenketten, aber nicht den sprachlichen Kontext.
_________________ Dieser Beitrag verwendet Cookies, um Dein Surferlebnis zu verbessern.
|
|
Nach oben |
|
 |
gopfertami auf eigenen Wunsch deaktiviert
Anmeldungsdatum: 25.04.2007 Beiträge: 77
|
(#992018) Verfasst am: 01.05.2008, 01:43 Titel: |
|
|
Ich verstehe nicht wozu so ein Programm gut sein soll...
Vielleicht liesse es sich auch mit Platzhaltern lösen.
|
|
Nach oben |
|
 |
fornit Kaktus
Anmeldungsdatum: 06.10.2003 Beiträge: 552
Wohnort: Wohn ich in der Wüste oder andersum?
|
(#992321) Verfasst am: 01.05.2008, 16:51 Titel: |
|
|
ich würde einfach nach dem namen inklusive des auf den namen folgenden leerzeichens suchen und dann nochmal getrennt nach dem genitiv inklusive leerzeichen.
die frage dürfte sich innerhalb der letzten zwei monate aber wohl schon von selbst erledigt haben
|
|
Nach oben |
|
 |
moritura pan narrans
Anmeldungsdatum: 01.12.2003 Beiträge: 1358
Wohnort: Berlin
|
(#992330) Verfasst am: 01.05.2008, 17:23 Titel: regulärer Ausdruck |
|
|
hab ich jetzt erst gesehen,
die relevante Zeile dürfte so aussehen:
Code: | Pattern p = Pattern.compile("\\b"+ersetzeName+"(s | )\\b"); |
Also Kai mit Leerzeichen oder Kai mit s und Leerzeichen
weitere Nuancen können in der Gruppe noch aufgenommen werden.
|
|
Nach oben |
|
 |
|