RegEx...mal wieder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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

      Comment


      • #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

        Comment


        • #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

          Comment

          Working...
          X