Ron: Einen Teil aus einem String entfernen...

Hallo,

Perl ist nicht mein Gebiet.
Bräuchte deshalb mal Hilfe...

möchte au einem String etwas entfernen:

Beipiel:

http://www.seite.de/default.do;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86?callContent=wasauchimmer

Heraugeschnitten werden soll:
;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86

ab dem ; (mit eingechlossen) bis zum Fragezeichen (nicht eingechlossen)

So das das Ergebnis folgendermassen aussieht:

http://www.seite.de/default.do?callContent=wasauchimmer

Kann mir da jemand helfen?
Krieg das mit den regular Expressions nicht hin...

Gruß Ron

  1. Hi,

    Krieg das mit den regular Expressions nicht hin...

    was hast Du denn versucht, und woran ist es gescheitert?

    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,

      Krieg das mit den regular Expressions nicht hin...

      was hast Du denn versucht, und woran ist es gescheitert?

      Cheatah

      Ich scheiter schon am Versuch....

      Angelangt bin ich hier...

      $text='www.meineseite.de/default.do;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86?callContent=wasauchimmer';
      $text=~m/;(.+?)?/;
      print $1;

      ist aus folgendem Beispiel:
      http://www.infos24.de/perle/handbuch/8_regular_expression.htm#8

      Aber so erhalte ich ja auch nur den zu herausschneidenden String...
      Ich will es ja umgekehrt...

      Gruß Ron

      1. hi,

        $text='www.meineseite.de/default.do;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86?callContent=wasauchimmer';

        $text=~m/;(.+?)?/;
        print $1;

        mach $text=~s/;.+??//;

        das s steht für substitude, also für ersetzen.
        du ersetzt also das pattern durch nichts.

        mfG,
        steckl

        1. hi,

          $text='www.meineseite.de/default.do;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86?callContent=wasauchimmer';

          $text=~m/;(.+?)?/;
          print $1;

          mach $text=~s/;.+??//;

          das s steht für substitude, also für ersetzen.
          du ersetzt also das pattern durch nichts.

          mfG,
          steckl

          Auch dir vielen Dank.
          Meine Frage dazu wäre natürlich die selbe wie bei der anderen Antwort...

          https://forum.selfhtml.org/?t=138007&m=896500

          Gruß Ron

          1. Hey,
            pass mal auf, ich schreibe den Beitrag vom Großelter noch ein bisschen ausführlicher und ich ich hoffe, dass bei dir dann der Groschen fällt.

              
            
            > > $text=~s/;.+?\?//;  
            
            $text =~  
            s/ # ersetze  
            ;  #    ein Semikolon  
            .+ #    ein oder mehrere Zeichen...  
            ?  #    ... aber optional  
            \? #    und ein Fragezeichen  
            // # durch nichts  
            x; # = explanation ;)  
            
            

            Alles klar jetzt? Wenn nicht, musst du mal Doku wälzen gehen.
            http://perldoc.perl.org/perlretut.html
            http://de.selfhtml.org/perl/sprache/regexpr.htm

            --
            水-金-地-火-木-土-天-海-冥
            1. Hey,

              ?  #    ... aber optional

              natürlich macht dieses Fragezeichen den vorherigen Teilausdruck .+ nicht greedy. Was schreibst du nur für einen Murks, du Doof?

              --
              水-金-地-火-木-土-天-海-冥
      2. Moin!

        $text=~m/;(.+?)?/;

        Damit suchst (m=match) Du nur.

        $text=~ s/;.+??//;

        sollte Dir helfen. Die Klammern brauchst Du nicht, wenn Dich der ausgeschnittene String nicht interessiert.

        -- Skeeve

        1. Moin!

          $text=~m/;(.+?)?/;

          Damit suchst (m=match) Du nur.

          $text=~ s/;.+??//;

          sollte Dir helfen. Die Klammern brauchst Du nicht, wenn Dich der ausgeschnittene String nicht interessiert.

          -- Skeeve

          Vielen Dank für die Antwort...
          Das hat soweit auch geklappt...
          Leider wird mir hierbei das Fragezeichen noch mit abgeschnitten.

          $text='www.meineseite.de/default.do;jsessionid=9F8E8A03F3A5B96924B7772CCFCA9A86?callContent=wasauchimmer';
          $text=~s/;.+??//;

          Ergebnis:
          www.meineseite.de/default.docallContent=wasauchimmer

          Ich bräuchte es aber mit Fragezeichen...
          www.meineseite.de/default.do?callContent=wasauchimmer
          ----------------------------|

          Was muss ich denn da machen, wenn ich so einfach fragen darf? ;)

          Gruß Ron

          1. Moin!

            Was muss ich denn da machen, wenn ich so einfach fragen darf? ;)

            Das: $text=~ s/;[^?]*//;

            -- Skeeve