RegEx...mal wieder

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

  • RegEx...mal wieder

    Hallo zusammen,

    ich habe (wiedermal) ein Problem mit dem RegEx-Syntax.

    Und zwar soll eine Zeile geparst werden, welche ein zweites Argument enthalten kann, aber nicht muss.

    z.B.
    Code:
    hier ist es schön
    das Wort "hier" wird sperat von dem darauf folgenden Text geparst (z.B. durch \w oder Anhand des Leerzeichens, kommt ja auf's selbe hinaus).

    Wie muss der Pattern aber nun aussehen, das er auch funktioniert, wenn " ist es schön" nicht existiert, sondern nur "hier" übergeben wird?
    An der Stelle komme ich z. Z. nciht weiter.

    ps.: Die Suche habe schon benutzt, versteht sich aber von selbst, hoffe ich.


    Danke schonmal im Vorraus
    mfg - sagg

  • #2
    Indem du an das Teilpattern für "ist es schön" ein Sternchen(*) ranhängst. Was für eine Anzahl von null oder mehr steht.

    Kommentar


    • #3
      Hallo,

      irgendwie schein ich dennoch was falsch zu machen.

      z. Z. habe ich lediglich folgendes als Pattern
      PHP-Code:
      "#(\\S.*)(.*)#i" 
      Sollte er somit nicht alles, was nach dem ersten Wort folgt, in den zweiten Teil packen?

      *edit* Slash wurde nicht angezeigt
      mfg - sagg

      Kommentar


      • #4
        dein pattern beschreibt momentan folgenden string:

        ein nicht-leerzeichen, welches von mindestens keinem zeichen gefolgt wird, gefolgt von mindestens keinem zeichen.

        'hier ist alles wunderschön' liefert dann im ersten unterausdruck den gesamten string, im zweiten nix ...

        http://pcre.nophia.de/evaluate/7aa1e...77c4/index.php

        so sollte es besser laufen:
        Code:
        #(\S+)\s(.*)#
        http://pcre.nophia.de/evaluate/3e9b9...8c58/index.php
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Stimmt, zumindest darauf (+) hätte ich von selbst kommen können.

          Aber so richtig funktionieren tut es trotzdem noch nicht, da er ein Leerzeichen erwartet, aber nicht zwangsläufig eins da sein muss.

          Laut der Seite, auf der man den RegEx testen kann, funktioniert es mit
          PHP-Code:
          /(\S+)(.*)/
          wunderbar, allerdings im Script nicht.

          Ich hab jetzt allerdings auch nicht die Zeit großartig zu testen ob es am RegEx oder an was anderem liegt, das mache ich heute Abend.

          Vielen Dank trotzdem, ein Stück weiter bin ich schonmal.
          mfg - sagg

          Kommentar

          Lädt...
          X