Hallo zusammen,
ich stehe vor der tollen Aufgabe folgende URI mit einer Regular Expression zerlegen zu können, so dass ich immer nur 'state' erhalte:
http://irgendwas/?s=state&var1=1&var2=2
http://irgendwas/?s=state/nochwas/
http://irgendwas/?s=state
Kann ich diese mit einem Ausdruck zerlegen um eben nur 'state' zu erhalten oder wie würdet Ihr das angehen. Folgenden RegEx habe ich mal zusammengebaut:
Warum das mit dem Punkt zumindest bei den beiden längeren URIs hinhaut .. keine Ahnung. Ich hätte eher erwartet dass mit /\/?s=(.*?)[\/|&]*/ es funktionieren sollte - geht aber bei keinem Fall.
Vielen Dank Für die Rückmeldungen.
ich stehe vor der tollen Aufgabe folgende URI mit einer Regular Expression zerlegen zu können, so dass ich immer nur 'state' erhalte:
http://irgendwas/?s=state&var1=1&var2=2
http://irgendwas/?s=state/nochwas/
http://irgendwas/?s=state
Kann ich diese mit einem Ausdruck zerlegen um eben nur 'state' zu erhalten oder wie würdet Ihr das angehen. Folgenden RegEx habe ich mal zusammengebaut:
Code:
my $testString = 'http://irgendwas/?s=state&var1=1&var2=2';
if( $testString =~ /\/?s=(.*?)[\/|&]./ ) {
print $1; # >> state (funktioniert)
}
$testString = 'http://irgendwas/?s=state/nochwas/';
if( $testString =~ /\/?s=(.*?)[\/|&]./ ) {
print $1; # >> state (funktioniert)
}
$testString = 'http://irgendwas/?s=state';
if( $testString =~ /\/?s=(.*?)[\/|&]./ ) {
print $1; # >> nix (Vergleich nicht gueltig)
}
Warum das mit dem Punkt zumindest bei den beiden längeren URIs hinhaut .. keine Ahnung. Ich hätte eher erwartet dass mit /\/?s=(.*?)[\/|&]*/ es funktionieren sollte - geht aber bei keinem Fall.
Vielen Dank Für die Rückmeldungen.