RegExp und Sonderzeichen (ä.ö.ü)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • RegExp und Sonderzeichen (ä.ö.ü)

    Hi
    steh gerade was auf dem Schlauch... Ich will in einem Text Begriffe wie Jäger, Küche, .. finden.

    Wie kann ich ä und ö im Suchmuster notieren? /[A-Za-zäöü]/ klappt nicht, /[\S]/ findet auch die Steuerzichen \r \n mit, die ich überhaupt nicht gebrauchen kann...ebenso verläuft der Versuch mit /[\D]/.

    thx

  • #2
    werd mal genauer, was der regex matchen soll, weil deiner tut es:

    alphabet inkl. umlaute(klein) mindesten einmal - oder dürfen nur diese zeichen vorkommen - mit oder ohne space - mit oder ohne zeilenumbruch?

    am besten du gibst mal ein beispiel, wo es nicht "klappt" (ganz tolle fehlerbeschreibung übrigens!) und wie es klappen soll.

    Kommentar


    • #3
      Tut mir leid, wenn meine Beschreibung zu knapp war...

      Das Script bekommt vom User über ein textarea-Feld ein Copy&Paste eines Seiteninhalts übermittelt - wie z.B (teilweies zitiert):


      Jäger
      Beschreibung
      Technische Daten
      Geschwindigkeit Systemintern: 8,30 pc/h
      Geschwindigkeit Galaxienintern: 213,00 pc/h
      Geschwindigkeit Galaxienübergreifend: 213,00 pc/h
      Lagerraum: 2.276
      Daraus soll z.B. "Jäger" extrahiert werden. Vor der Zeile mit dem Begriff befinden sich (mindestens) zwei leere Zeilen (unsichbare Steuerzeichen für Zeilenumbruch sind aber vorhanden dort).

      /([A-Za-zäöü])\sBeschreibung/ klappt als Suchmuster nicht, /[\S]\sBeschreibung/ findet auch die Steuerzeichen \r \n mit, die ich überhaupt nicht gebrauchen kann...ebenso verläuft der Versuch mit /[\D]\sBeschreibung/.

      Kommentar


      • #4
        /^[a-zäöü]+$/i <--?

        Kommentar


        • #5
          quote:
          --------------------------------------------------------------------------------


          Jäger
          Beschreibung
          Technische Daten
          Geschwindigkeit Systemintern: 8,30 pc/h
          Geschwindigkeit Galaxienintern: 213,00 pc/h
          Geschwindigkeit Galaxienübergreifend: 213,00 pc/h
          Lagerraum: 2.276

          --------------------------------------------------------------------------------

          Daraus soll z.B. "Jäger" extrahiert werden.
          die erklärung ist schon besser - aber noch nicht genau genug

          ok, das erste wort inkl. umlaute(klein) bekommst du mit:
          PHP-Code:
          preg_match(/^[A-]*[äöü]+[A-zäöü ]*/m', $string, $matches); 
          wobei ich jetzt mal davon ausgegangen bin, das auch mehrere wörter, getrennt mit (mehreren) spaces matches können.

          dein beispiel enthält auch noch: "Geschwindigkeit Galaxienübergreifend: 213,00 pc/h"

          wenn du den string auch noch haben möchtest (also alle zeilen mit umlauten):
          PHP-Code:
          preg_match_all(/^[A-]*[äöü]+[A-zäöü ]*/m', $string, $matches); 

          über $matches kannst du jeweils auf den/die treffer zugreifen.
          einfach mal print_r($matches) ausführen ...

          [EDIT]
          gerade bemerkt, steuerzeichen wolltest du ja nicht.
          aber da du die treffer ja sowieso aus dem array holen musst, kannst du es auch mit einem trim() machen
          Zuletzt geändert von 3DMax; 05.08.2006, 18:16.

          Kommentar


          • #6
            Danke euch!

            Und ich werde mich bemühen, zukünftig (sollte ich noch einmal eine Frage stellen müssen) genauere Problembeschreibungen zu finden - ist halt eine Kunst, so knapp wie möglich, dabei aber auch ausführlich genug zu beschreibe ;-)

            mardeluk

            Kommentar

            Lädt...
            X