tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JUsername JUsername ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    8
    Hallo,

    ich habe folgendes Problem. In einem String möchte ich mit einem regulären Ausdruck Teilstrings auswählen. Diese möchte ich dann verändern und wieder in den String einfügen. Wie kann man sowas mit den Regex-Klassen von Java machen? Es müsste sowas wie "Matcher.replaceMatchWith(String s)" geben. replaceAll nützt mir leider nichts, da der Teilstring nicht immer durch den selben String ersetzt werden soll.
     

  2. #2
    Avatar von matdacat
    matdacat matdacat ist offline Mitglied Platin
    Registriert seit
    Aug 2004
    Beiträge
    672
    Und nach welchem Schema ergibt sich der einzusetzende String?
     

  3. #3
    JUsername JUsername ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    8
    Der einzusetzende String ist die stammformreduzierte Variante des gematchten Teilstrings.
     

  4. #4
    Avatar von Klein0r
    Klein0r Klein0r ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Ort
    Paderborn
    Beiträge
    718
    Hey,

    leider kann ich dir in Java momentag nicht weiterhelfen. Aber suchst du etwas ähnlich wie folgende Funktion in PHP?

    http://de.php.net/manual/de/function...e-callback.php

    Vielleicht kann man so die Suche ein wenig einschränken und kommt schneller zum Ergebnis Dort wird mit dem gefunden Parameter aus der regex eine neue Funktion aufgerufen - dann kann man den Krams verarbeiten und wieder in den String einbinden.

    Am besten mal warten bis jemand erfahreneres in Java was dazu sagt.
    Ist das denn was was du suchst?
     

  5. #5
    JUsername JUsername ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    8
    Ich bin zwar nicht der große PHP-Experte, aber so wie ich die Doku verstehe suche ich genau sowas.
     

  6. #6
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Ich hab auch noch nicht ganz verstanden was du möchtest. Gibt doch mal ein Beispiel?

    Vielleicht hilft dir das aber schon weiter?
    Code java:
    1
    2
    3
    4
    5
    6
    7
    
    public static void main(String[] args) {
        final String search = "Hallo Welt";
        final String regExp = "(\\w*) (\\w*)";
        
        final String replaceAll = search.replaceAll(regExp, "$1 du $2");
        System.out.println(replaceAll);
    }

    Ergebnis:
    Hallo du Welt

    Mehr kann man noch mit dem Pattern und Matcher machen.
    Geändert von zeja (24.04.08 um 18:24 Uhr) Grund: besseres Beispiel
     

  7. #7
    JUsername JUsername ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    8
    Ich möchte beispielsweise den folgenden String umwandeln:

    "Ich laufe nach Hause"

    Als Regex verwende ich "\\b\\w*\\b".

    Wird nun ein Teilstring gematcht (z.B. "laufe") möchte ich die Stammform ermitteln ("lauf") und diese wieder in den String "einsetzen". Das endgültige Ergebnis sollte sein:

    "Ich lauf nach Haus"

    Die String.replaceAll-Methode setzt ja immer eine festen String ein (in Deinem Beispiel "$1 du $2").
     

  8. #8
    JUsername JUsername ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    8
    Ich hab's!

    So funktioniert es:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Matcher m = Pattern.compile(pattern).matcher(input);
    StringBuffer sb = new StringBuffer();
    boolean result = m.find();
     
    while (result) {
        m.appendReplacement(sb, m.group(1)+x); // Testweise x hinzufügen
        System.out.println(m.group(1));
        result = m.find();
    }
     
    m.appendTail(sb);
            
    System.out.println(sb.toString());
     

Ähnliche Themen

  1. Teil eines Strings ersetzen
    Von tomate im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.05.09, 21:05
  2. Bestimmte Teile eines Strings auslesen
    Von ShOrtYk im Forum PHP
    Antworten: 6
    Letzter Beitrag: 01.09.07, 17:01
  3. [VC++]Teile eines Strings in einen anderen String kopieren
    Von ai-gamecock im Forum Borland CBuilder und VCL
    Antworten: 6
    Letzter Beitrag: 11.06.05, 10:30
  4. Teile von Strings ersetzen
    Von Martin Schroeder im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 28.01.05, 10:56
  5. Teile eines Strings
    Von duermer im Forum Java
    Antworten: 1
    Letzter Beitrag: 30.10.04, 18:04