regex will mal wieder nicht so wie ich es möchte - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von sebastian (533 Beiträge) am Samstag, 31.Januar.2009, 12:34.
    regex will mal wieder nicht so wie ich es möchte

      habe in einem datenfeld folgenden Inhalt: "85002-Keller_vom_Erdgeschos*85002-Seitenansicht_gut*85002-Gehweg_Ausblick_von_Oben*85002-Hintertür_mit_Ansicht"

      wende ich folgendes regex an
      $Bilder_serien=~ s/\*/\",\"/;  # wandlung von * in "," für das foreach
      

      als ergebnis bringt er aber
      "85002-Keller_vom_Erdgeschos","85002-Seitenansicht_gut*85002-Gehweg_Ausblick_von_Oben*85002-Hintertür_mit_Ansicht"

      sprich er ersetzt nur das erste *

      wo mache ich den schon wieder was falsch

      sebastian


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von sebastian (533 Beiträge) am Samstag, 31.Januar.2009, 12:34.
    regex will mal wieder nicht so wie ich es möchte

      habe in einem datenfeld folgenden Inhalt: "85002-Keller_vom_Erdgeschos*85002-Seitenansicht_gut*85002-Gehweg_Ausblick_von_Oben*85002-Hintertür_mit_Ansicht"

      wende ich folgendes regex an
      $Bilder_serien=~ s/\*/\",\"/;  # wandlung von * in "," für das foreach
      

      als ergebnis bringt er aber
      "85002-Keller_vom_Erdgeschos","85002-Seitenansicht_gut*85002-Gehweg_Ausblick_von_Oben*85002-Hintertür_mit_Ansicht"

      sprich er ersetzt nur das erste *

      wo mache ich den schon wieder was falsch

      sebastian

     Antworten

    Beitrag von Claus (4645 Beiträge) am Samstag, 31.Januar.2009, 12:45.
    Re: regex will mal wieder nicht so wie ich es möchte

      Hallo Sebastian,

      wenn Du alle "*" ersetzten willst, dann so probieren:

      $Bilder_serien=~ s/\*/\",\"/g;
      

      hth

      Gruß

      Claus

     Antworten

    Beitrag von sebastian (533 Beiträge) am Samstag, 31.Januar.2009, 13:53.
    Re: Re: regex will mal wieder nicht so wie ich es möchte

      danke dir claus, geht.

      habe aber noch ein problem, wenn ich nun $Bilder_serien in ein foreach setze stoppt es nach der ersten ausgabe, wenn ich es direkt als text reinsetze, läuft es bis zum vierten bild.

      foreach $tmp_bildernamen ("$Bilder_serien") 
      

      da läuft das foreach durch
      #("85002-Keller_vom_Erdgeschos","85002-Seitenansicht_gut","85002-Gehweg_Ausblick_von_Oben","85002-Hintertür_mit_Ansicht") 
              
       {
      
       my ($tmp_bild_01)=split /\",\"/g,$tmp_bildernamen;

     Antworten

    Beitrag von Claus (4645 Beiträge) am Samstag, 31.Januar.2009, 17:00.
    Re: Re: Re: regex will mal wieder nicht so wie ich es möchte

      Hallo Sebastian,

      kenne nicht den kompletten Vorgang bei Dir, aber vermutlich beissen sich da die " "

      im foreach

      foreach $tmp_bildernamen ("$Bilder_serien") 
      




      Also mal so versuchen:

      foreach $tmp_bildernamen ($Bilder_serien) 
       {
       my ($tmp_bild_01)=split /\",\"/g,$tmp_bildernamen;
      

      hth

      Gruß

      Claus

     Antworten

    Beitrag von Claus (4645 Beiträge) am Samstag, 31.Januar.2009, 18:10.
    Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      Hallo Sebastian,

      hatte ich noch übersehen, eventuell auch mal so testen:

      foreach $tmp_bildernamen (%Bilder_serien) 
       {
       my ($tmp_bild_01)=split /\",\"/g,$tmp_bildernamen;
      


      hth

      Gruß

      Claus

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 31.Januar.2009, 23:12.
    Re: Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      >> foreach $tmp_bildernamen (%Bilder_serien) 
      

      oje, was soll da rauskommen?
      ein hash wird eigentlich mit keys durchgegangen
      foreach $tmp_bildernamen (keys %Bilder_serien)
      

      aber ich denke mal, Sebastian will das auch nicht...

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 1.Februar.2009, 09:53.
    Re: Re: Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      stimmt, hatte die keys in der Eile vergessen...;)

      ich arbeite da eigentlich meistens nur mit push und dann foreach (@xyz)...

      Gruß

      Claus

     Antworten

    Beitrag von sebastian (533 Beiträge) am Sonntag, 1.Februar.2009, 11:47.
    Re: Re: Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      ich habe in einen wert wie folgt, 85002-Keller_vom_Erdgeschoss*85002-Seitenansicht_gut*85002-Gehweg_Ausblick_von_Oben*85002-Hintertuer_mit_Ansicht

      das sind namen von bildern, die möchte ich trennen beim * und als bild ausgeben. dann möchte ich weiter trenen beim - und als bildbeschreibung in textform ausgeben.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 1.Februar.2009, 13:14.
    Re: Re: Re: Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      foreach $tmp(split /\*/,$string){
         out $tmp."<br>";
         my($nummer,$beschreibung)=split /-/,$tmp;
         out "$nummer - $beschreibung<br>";
      }
      

     Antworten

    Beitrag von sebastian (533 Beiträge) am Montag, 2.Februar.2009, 10:06.
    Re: Re: Re: Re: Re: Re: Re: regex will mal wieder nicht so wie ich es möchte/Nachtrag

      vielen dank, klappt.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 31.Januar.2009, 23:17.
    Re: Re: Re: regex will mal wieder nicht so wie ich es möchte

      foreach geht listen durch (auch keys %hash wird zu ner liste)
      
      Du versuchst, einen String durchzugehen.

      sicher meinst du sowas
      foreach (split /","/,'"85002-Keller_vom_Erdgeschos","85002-Seitenansicht_gut","85002-Gehweg_Ausblick_von_Oben","85002-Hintertür_mit_Ansicht"'){
      
      ....
      }

      oder
      @liste=("85002-Keller_vom_Erdgeschos","85002-Seitenansicht_gut","85002-Gehweg_Ausblick_von_Oben","85002-Hintertür_mit_Ansicht");
      

      foreach $tmp_bildernamen (@liste){
      {
       my ($tmp_bild_01)=split /\",\"/g,$tmp_bildernamen; # wäre dann das gleiche wie $tmp_bild_01=$tmp_bildernamen;
      

     Antworten


     
 Liste der Einträge von 9150 bis 9300:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!