PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitte Hilfe


heohni
27.07.2005, 16:26
Hallo,

kann mir jemand schnell helfen, ich habs mit regex nur sehr laienhaft :(

Aus diesem String
"...domain.com/1/5/1/Tourist-Information.html"

brauche ich die rote Zahl, denn das ist die Info, in welcher Sprache die Seite ist und ich möchte das gerne so in meiner Datenbank speichern.

Ich arbeite mit PHP und Mysql.

Ich danke Euch sehr herzlich für die Rettung!


Godfather
27.07.2005, 17:35
So habs jetzt ma stur hingeklatscht;


#!/usr/bin/perl

my $line = "...domain.com/1/5/1/Tourist-Information.html";

$line =~ m/\.+\w+\.\w+\/\d+\/(\d)\/\d\/\w+-?\w+\.\w+/;

print $1;


ist zwar perl aber sollte eigentlich keinen großen Unterschied machen

MFG

GODFATHER

heohni
27.07.2005, 22:12
So habs jetzt ma stur hingeklatscht;


#!/usr/bin/perl

my $line = "...domain.com/1/5/1/Tourist-Information.html";

$line =~ m/\.+\w+\.\w+\/\d+\/(\d)\/\d\/\w+-?\w+\.\w+/;

print $1;


ist zwar perl aber sollte eigentlich keinen großen Unterschied machen

MFG

GODFATHER

Ach du lieber Himmel, ob Du mir auch erklären kannst, was das zu bedeuten hat?

heohni
27.07.2005, 22:30
übrigens:
$line = "http://www.domain.com/1/5/1/Tourist-Information.html";
$line = preg_match("m/\.+\w+\.\w+\/\d+\/(\d)\/\d\/\w+-?\w+\.\w+/", $line);
print $line;

geht leider nicht:
Warning: Delimiter must not be alphanumeric or backslash in D:\htdocs\test.php on line 4


Scheinbar Lásst sich Perl nicht so einfach in PHP umschreiben?

butterkeks
28.07.2005, 00:36
fast:

$line = "http://www.domain.com/1/5/1/Tourist-Information.html";
preg_match("m/\.+\w+\.\w+\/\d+\/(\d)\/\d\/\w+-?\w+\.\w+/", $line, $result);
print $result[1];

siehe doku

Godfather
28.07.2005, 00:41
übrigens:

geht leider nicht:
Warning: Delimiter must not be alphanumeric or backslash in D:\htdocs\test.php on line 4


Scheinbar Lásst sich Perl nicht so einfach in PHP umschreiben?

No Problem


<?php

$url = "http://www.domain.com/1/5/1/Tourist-Information.html";

// Funktion preg_match() muss die Variable matches übergeben werden.
// Diese enthält die Ergebnis aus der Gruppierung.
// Es wird angenommen, dass die Versionsnummer und alle anderen Nummern
// nach ...domain.com mehrere Zahlen enthalten können. ACHTUNG keine
// Dezimalzahlen

preg_match("/^http:\/\/?[^\/]+\/\d+\/(\d+)\/\d+\/[^\/]+\.html/", $url, $matches);

print $matches[1]; //<- Hier ist die Versionsnummer gespeichert

?>

heohni
28.07.2005, 08:31
Ok, erwischt, hätte ich besser lesen müssen! Ganz herzlichen Dank!
Ob sich trotzdem jemand die Mühe machen will mir zu erklären, wie die obige regex zu lernen/verstehen ist?