• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Position eines Regulären ausdrucks??

TitanNano

New member
Hi,

Ich Hab in Perl diesen regulären ausdruck:
Code:
/<a.*href="http:\/\//

Wie bekomme ich die Position in dem String?? Bzw. ich brauche die Position des letzten Zeichens...

MfG. TitanNano
 
Bist du sicher, dass der Regex klappt? In Perl sind die gierig, das heißt, .* müsste alles nachfolgende auffressen.
Welche Position genau brauchst du?
Gib mal ein Beispiel.
 
Code:
#!/usr/bin/perl
use strict;
use warnings;

my $zusatz = 'http://www.example.com/perl.pl?';
my $string = '<a href="http://www.blabla.de">';
if ($string =~ /(<a href=")(.*)/) {
	$string = $1.$zusatz.$2;
}
print "Ergebnis: '$string'\n";
Ergebnis: '<a href="http://www.example.com/perl.pl?http://www.blabla.de">'
So?

Anmerkung: Sehr sicher ist das aber nicht.
Sobald z.B. ein < a href oder ein <a target="" href=""> kommt klappt das nicht mehr.
Es gibt Module zum Parsen eines HTML Dokuments, die würde ich auf jeden Fall vorziehen!
Bitte ggf. auch in http://www.perl-community.de/bat/poard/board/10 nochmal fragen, das Board ist für Perl das beste in Deutschland!
 
Zuletzt bearbeitet:
Code:
#!/usr/bin/perl
use strict;
use warnings;

my $zusatz = 'http://www.example.com/perl.pl?';
my $string = '<a href="http://www.blabla.de">';
if ($string =~ /(<a.*href=")(.*)(".*>)/) {
	$string = $1.$zusatz.$2;
}
print "Ergebnis: '$string'\n";

So müsste es doch auch gehen??
 
So müsste es doch auch gehen??
Ergebnis: '<a href="http://www.example.com/perl.pl?http://www.blabla.de'
Schau mal hinten. Deine Lösung frisst vorne zuviel weg, deshalb fehlt hinten etwas.
Vorsichtig mit dem Stern in Regexen bei Perl.
Und nochmal: Mach das bitte nicht selbst sondern nutze ein Modul dafür.
Es sei denn, der Input kommt aus eigener Quelle und du kannst sicherstellen, dass der Aufbau immer gleich ist.
 
Was ist z.b. mit
Code:
<a title='das ist ein href="#" Anker' href="http://example.org">
<a href=http://example.org >
<a href='http://example.org'

HTML Parsen mit regulären Ausdrücken ist nur z.T. möglich.
 
Zurück
Oben