Schrift
[thread]6331[/thread]

RegEx für <BODY>-Tags: gesucht

Tags: Ähnliche Threads

Leser: 1


<< >> 9 Einträge, 1 Seite
pktm
 2004-06-12 21:53
#83311 #83311
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Wehe hier kommt jetzt einer von wegen dieses Topic hätte was mit CGI am Hut :D

Also ich suche eine Regex die mir alle Variationen vom Body-Tag findet.
Das Tag befindet sich in einer Scalarref die zuvor mit einer Datei gefütert wurde, also auch ohne weiteres \n und \t beinhalten kann.
Soweit bin ich gekommen:
m/<[\s\n]{0,}(body).{0,}>/i
Das findet aber auch <body>>>>, ergo frisst es alles nachstehende auf.
Wie mache ich das, dass nur ein > gefunden wird, bzw. wie grenze ich > aus [.] aus?
Und wo wir gerade dabei sind.... :)
Das nächste wäre alles zwischen <body ...*> und </body> auszulesen.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
esskar
 2004-06-12 22:00
#83312 #83312
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
m!<\s*body.*?>(.*?)<\s*/\s*body\s*>!mi;
pktm
 2004-06-12 23:52
#83313 #83313
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hey, danke!
Kannst du mir noch gerade erklären, was das m hinten dran macht?
mfg pktm

Edit: Habe ich erwähnt, dass ein s gefehlt hat?
m!<\s*body.*?>(.*?)<\s*/\s*body\s*>!msi

*In der Doku kram was das bedeutet*\n\n

<!--EDIT|pktm|1087070905-->
http://www.intergastro-service.de (mein erstes CMS :) )
[E|B]
 2004-06-13 00:03
#83314 #83314
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
Kannst du mir noch gerade erklären, was das m hinten dran macht?


Das Flag "m" fasst "\n" als Zeilenende eines Strings auf. (bezogen auf "^" und "$")
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2004-06-13 08:05
#83315 #83315
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Dafür gibt es doch bestimmt schon "fertige" RE's in diesem schlauen Modul, dessen Name ich gerade wieder vergessen habe, das Strat aber bestimmt noch nennt =)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
[E|B]
 2004-06-13 12:31
#83316 #83316
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
HTML::Parser?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
pktm
 2004-06-13 12:48
#83317 #83317
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[E|B
,13.06.2004, 10:31]HTML::Parser?

Nein. Definitiv nein. Eventuelll CPAN::Regex oder so.
HTML::Parser parst zwar HTML-Tokens, aber irgendwie ohne Regex.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
format_c
 2004-06-13 17:53
#83318 #83318
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Dafür erfordert HTML::Parser weniger Kopzerbrechen, was man mit RegEx alles für Möglichkeiten abfangen muss.


Gruß Alex
Crian
 2004-06-13 17:57
#83319 #83319
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nein, es gibt doch so ein Modul mit gebräuchlichen Regulären Ausdrücken für alle erdenklichen Anwendungsfälle ...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 9 Einträge, 1 Seite



View all threads created 2004-06-12 21:53.