Freigeisterhaus Foren-Übersicht
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   NutzungsbedingungenNutzungsbedingungen   BenutzergruppenBenutzergruppen   LinksLinks   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Java, Reguläre Ausdrücke, brache Hilfe!

 
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Spartacus Leto
Ist hier raus!



Anmeldungsdatum: 27.08.2005
Beiträge: 5659

Beitrag(#948207) Verfasst am: 06.03.2008, 10:36    Titel: Java, Reguläre Ausdrücke, brache Hilfe! Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Picard
Mein eigener Captain



Anmeldungsdatum: 15.08.2005
Beiträge: 26
Wohnort: Hier

Beitrag(#991982) Verfasst am: 01.05.2008, 01:00    Titel: replaceAll() Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Kramer
postvisuell



Anmeldungsdatum: 01.08.2003
Beiträge: 30878

Beitrag(#991998) Verfasst am: 01.05.2008, 01:18    Titel: Re: Java, Reguläre Ausdrücke, brache Hilfe! Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
gopfertami
auf eigenen Wunsch deaktiviert



Anmeldungsdatum: 25.04.2007
Beiträge: 77

Beitrag(#992018) Verfasst am: 01.05.2008, 01:43    Titel: Antworten mit Zitat

Ich verstehe nicht wozu so ein Programm gut sein soll...
Vielleicht liesse es sich auch mit Platzhaltern lösen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fornit
Kaktus



Anmeldungsdatum: 06.10.2003
Beiträge: 552
Wohnort: Wohn ich in der Wüste oder andersum?

Beitrag(#992321) Verfasst am: 01.05.2008, 16:51    Titel: Antworten mit Zitat

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 zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
moritura
pan narrans



Anmeldungsdatum: 01.12.2003
Beiträge: 1358
Wohnort: Berlin

Beitrag(#992330) Verfasst am: 01.05.2008, 17:23    Titel: regulärer Ausdruck Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Impressum & Datenschutz


Powered by phpBB © 2001, 2005 phpBB Group