Einen Teil aus einem String entfernen...
Ron
- perl
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
Hi,
Krieg das mit den regular Expressions nicht hin...
was hast Du denn versucht, und woran ist es gescheitert?
Cheatah
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
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
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
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
Hey,
? # ... aber optional
natürlich macht dieses Fragezeichen den vorherigen Teilausdruck .+ nicht greedy. Was schreibst du nur für einen Murks, du Doof?
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
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
Moin!
Was muss ich denn da machen, wenn ich so einfach fragen darf? ;)
Das: $text=~ s/;[^?]*//;
-- Skeeve