Schrift
[thread]7304[/thread]

* suche regulären ausdruck *: ...schwierig...



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
steinwolf
 2005-09-22 18:43
#58365 #58365
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Moinmoin,

Habn Problem:
in einem HTML-Quelltext sind mehrere Bilder per <img src="bild123.jpb"> definiert. Weitere Tags wie alt oder border könnten theoretisch auch drin sein. Nun will ich jedes zweite Bild im Code so aussehen lassen: <img src="{&bild123.jpg&}">

ist halt für die spätere Verarbeitung notwendig.

Habt ihr irgendwelche ideen? Kann man das in einem einzelnen Regex machen?

mfg
stein
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
nepos
 2005-09-22 18:52
#58366 #58366
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, ich wuerde das nicht selber machen sondern ein Modul nutzen, z.B. kann HTML::TreeBuilder HTML-Dateien parsen und du kannst die dann recht gut verarbeiten.
Strat
 2005-09-22 18:58
#58367 #58367
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
haengt davon ab, wie viel kontrolle ueber den html-code hast; wenn er korrekt ist, koenntest du schon mit REs arbeiten, sonst ist vermutlich HTML::Parser oder aehnliches dein freund.
Code: (dl )
1
2
3
4
5
6
7
8
s/(
<img\b # <img
[^<>]*? # ev. alt, ...
\s+src=\" # whitespace src="
) # das alles kommt nach $1
([^"<>]+) # der name des images => $2
(\"[^<>]*?>) # ", der rest nach $3, dabei optional alt, ... >
/$1\{\&$2\&\}$3/gx;

nicht getestet; vermutlich kann man ein paar \ weglassen. aber besser eins der HTML-Module verwenden, das ist sicherer\n\n

<!--EDIT|Strat|1127401305-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
steinwolf
 2005-09-22 19:11
#58368 #58368
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
danke, die regex funzt. aber wie krieg ich es nun hin, dass nur jedes zweite bild bearbeitet wird????\n\n

<!--EDIT|steinwolf|1127402042-->
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
Strat
 2005-09-22 19:18
#58369 #58369
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nicht so einfach.... z.B.
Code: (dl )
1
2
my $counter = 0;
s/ Ausdruck von oben / (++$counter % 2 == 0) ? "$1\{&$2&\}$3" : "$1$2$3" /gex;

aber schoen langsam wird's wirklich haesslich\n\n

<!--EDIT|Strat|1127402395-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
steinwolf
 2005-09-22 19:22
#58370 #58370
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
uff, strat du brain! :D

Ich liebe dich!
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
J-jayz-Z
 2005-09-22 19:27
#58371 #58371
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Kann das mal wer verschieben? :p
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Relais
 2005-09-22 19:44
#58372 #58372
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=J-jayz-Z,22.09.2005, 17:27]Kann das mal wer verschieben? :p[/quote]
wohin denn?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
J-jayz-Z
 2005-09-22 19:47
#58373 #58373
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
am besten in den Posteingang von Strat ^^
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Strat
 2005-09-22 19:49
#58374 #58374
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=steinwolf,22.09.2005, 17:22]Ich liebe dich![/quote]
lass das mal besser nicht meine freundin hoeren ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-09-22 18:43.