Ole: Formulierungsproblem: Regulärer Ausdruck

hi

ich versuche mich grade an regex und blicke da nicht ganz durch.

der von mir gesuchte ausdruck, soll alle zeichen die nicht zwischen 'name="' und '">' stehen erfassen.

jemand nen tipp damit ich auf den richtigen weg komme?

thx
ole
(8-)>

  1. Hi,

    der von mir gesuchte ausdruck, soll alle zeichen die nicht zwischen 'name="' und '">' stehen erfassen.

    also soll er beispielsweise 'name="foo">' erfassen, weil das ja nicht zwischen 'name="' und '">' steht. Richtig?

    jemand nen tipp damit ich auf den richtigen weg komme?

    Ich glaube dass das, was Du vorhast, über eine Mustererkennung hinaus geht. Damit sind RegExp höchstens Hilfs-, nicht jedoch Mittel.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi

      also soll er beispielsweise 'name="foo">' erfassen, weil das ja nicht zwischen 'name="' und '">' steht. Richtig?

      genau :)

      Ich glaube dass das, was Du vorhast, über eine Mustererkennung hinaus geht. Damit sind RegExp höchstens Hilfs-, nicht jedoch Mittel.

      das ist jetzt ein wenig deprimierend für mich, da ich mich die letzten 4 Stunden mit .+[1]{}()|$? etc. rumgeschlagen habe und nurnoch kryptischen müll im kopf habe....nicht das ich es verstanden hätte.

      vieleicht bin ich ja so richtig auf dem holzweg mit regex... ich schildere hier mal kurz was ich vorhabe:

      ich bekomme mittels entfernter Datenbankabfrage XML-Daten (wieso? siehe  https://forum.selfhtml.org/?t=86614&m=512745) in folgender Form:

      <?xml version="1.0"?>
      <result state="success">
      <row>
      <column name="id">1</column>
      <column name="status">2</column>
      <column name="eigner">3</column>
      </row>
      <row>
      <column>4</column>
      <column>5</column>
      <column>6</column>
      </row>
      </result>

      leider sind die datenfeldnamen in der ersten "zeile" im name-attribut "versteckt".
      da die datenfeldnamen je nach abgefragter tabelle variiren dürfte ja klar sein, daher kann ich nicht nach feststehen ausdrücken (z.B. "id" oder "status") suchen.

      Für die weiterverarbeitung der daten muß ich aber irgendwie an die datenfeldnamen kommen.

      jemand ne idee?

      thx
      ole
      (8-)>


      1. ↩︎

      1. Hi,

        vieleicht bin ich ja so richtig auf dem holzweg mit regex... ich schildere hier mal kurz was ich vorhabe:

        das ist selten verkehrt :-)

        ich bekomme mittels entfernter Datenbankabfrage XML-Daten [...]
        Für die weiterverarbeitung der daten muß ich aber irgendwie an die datenfeldnamen kommen.

        Der schulmäßige Weg wäre, XSLT einzusetzen - mindestens sofern das von diesen Daten abhängende Ergebnis ein XML sein soll (HTML oder sogar Text gingen auch). Kommt dies nicht in Frage, empfehle ich einen DOM- oder SAX-Parser (o.ä.), also ein System, welches XML beherrscht. Andernfalls bestünde Deine Arbeit darin, ein solches System nachzubauen, was nur bedingt Sinn macht.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Ole,

        ich bekomme mittels entfernter Datenbankabfrage XML-Daten

        hast du keine xml-Parser zur Verfügung?

        leider sind die datenfeldnamen in der ersten "zeile" im name-attribut "versteckt".

        wenn ich dich jetzt richtig verstehe, willst du das was _zwischen_ 'name="' und '">' steht - und nicht das was _nicht_ dazwischen steht (wie in https://forum.selfhtml.org/?t=86719&m=513435 geschrieben), oder?
        Das sollte dann nämlich mit ~.*name="(.*)"~U gehen (in php preg_match_all() verwenden, in anderen Sprachen gibt es bestimmt auch eine Möglichkeit).

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. hi

          ich bekomme mittels entfernter Datenbankabfrage XML-Daten
          hast du keine xml-Parser zur Verfügung?

          doch, habe ich http://torchbox.com/xml/XMLTagDocs/TagReference/
          das problem ist nur, das es bei größeren datenmengen verdammt lange dauert bis das ganze z.B. in eine structur gepackt wurde.

          leider sind die datenfeldnamen in der ersten "zeile" im name-attribut "versteckt".
          wenn ich dich jetzt richtig verstehe, willst du das was _zwischen_ 'name="' und '">' steht - und nicht das was _nicht_ dazwischen steht (wie in https://forum.selfhtml.org/?t=86719&m=513435 geschrieben), oder?

          doch, im prinzip schon, da ich da davon ausgegangen bin, das ich das drumherrum einfach wegrationalisiere :)

          Das sollte dann nämlich mit ~.*name="(.*)"~U gehen (in php preg_match_all() verwenden, in anderen Sprachen gibt es bestimmt auch eine Möglichkeit).

          auch ein guter ansatz :)...werd mal damit weiterprobieren :)

          thx
          ole
          (8-)>

        2. Hallo,

          leider sind die datenfeldnamen in der ersten "zeile" im name-attribut "versteckt".
          wenn ich dich jetzt richtig verstehe, willst du das was _zwischen_ 'name="' und '">' steht - und nicht das was _nicht_ dazwischen steht (wie in https://forum.selfhtml.org/?t=86719&m=513435 geschrieben), oder?
          Das sollte dann nämlich mit ~.*name="(.*)"~U gehen (in php preg_match_all() verwenden

          Oder effizienter mit ~name="([^"]+)"~ bzw. ~<column name="([^"]+)">~ und ähnlich, mit den genannten Einschränkungen.

          Mathias