Schrift
[thread]446[/thread]

RegEx...

Leser: 4


<< >> 8 Einträge, 1 Seite
XTreM3
 2005-02-26 13:08
#4507 #4507
User since
2005-02-26
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,
und zwar hab ich folgendes Problem:

ich möchte alle Zeichen in einem string die innerhalb von einem <% und einem %> stehen auslesen... ich habs mal so gelöst:
Code: (dl )
$str =~ /<%(.*?)%>/m;


funktioniert auch ganz gut, aber nur solange keine Newlines innerhalb von <% und %> vorkommen da der . in RegEx ja leider keine Newlines beinhaltet...
also, kann mir jemand sagen wie es auch mit Newlines innerhalb der <% und %> funktioniert?

Danke schonmal ;-)
pq
 2005-02-26 13:45
#4508 #4508
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=XTreM3,26.02.2005, 12:08]funktioniert auch ganz gut, aber nur solange keine Newlines innerhalb von <% und %> vorkommen da der . in RegEx ja leider keine Newlines beinhaltet...[/quote]
der . punkt beinhaltet keine newlines, richtig. aber natürlich bietet dir perl
ein möglichkeit, das zu ändern. mit der option /s.
wofür ist aber die option /m in deinem beispiel? die brauchst du doch
hier gar nicht...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
lichtkind
 2005-02-26 16:15
#4509 #4509
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ich versteh die *? konstuktion nicht reicht kein + ?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
XTreM3
 2005-02-26 16:22
#4510 #4510
User since
2005-02-26
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
hmm, das mit dem s kannte ich noch garnicht, gut zu wissen :)
aber noch ne kleine Frage zu dem s am Ende... wenn ich jetzt eine RegEx anwende die etwas sucht und ersetzt, also zB mit
Code: (dl )
$str =~ s/<%(.*?)%>/$1/s;
fehlen da dann die Newlines innerhalb dem <% und %> oder sind die noch da?\n\n

<!--EDIT|XTreM3|1109428263-->
XTreM3
 2005-02-26 16:27
#4511 #4511
User since
2005-02-26
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=lichtkind,26.02.2005, 15:15]ich versteh die *? konstuktion nicht reicht kein + ?[/quote]
Doch ein + würde langen, sogar eher ein *
Das Fragezeichen gehört eigentlich nicht hin, da muss ich dir rechtgeben :)
Edit: das gehört schon da hin, sonst wird die RegEx gierig!\n\n

<!--EDIT|XTreM3|1109430668-->
esskar
 2005-02-26 16:48
#4512 #4512
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
my $string1 = "<%_Mitten_drin_statt_nur_dabei_%>_Und_mehr_%>";
$string1 =~ /<%(.*?)%>/;
print "$1\n";
$string1 =~ /<%(.*)%>/;
print "$1\n";
^Z
_Mitten_drin_statt_nur_dabei_
_Mitten_drin_statt_nur_dabei_%>_Und_mehr_
\n\n

<!--EDIT|esskar|1109429347-->
XTreM3
 2005-02-26 17:10
#4513 #4513
User since
2005-02-26
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
uuups, danke esskar, jetzt weis ich wieder warum ich das Fragezeichen drin hatte... wir wollen ja nicht das meine RegEx gierig wird :D
pq
 2005-02-26 17:20
#4514 #4514
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=XTreM3,26.02.2005, 15:22]hmm, das mit dem s kannte ich noch garnicht, gut zu wissen :)
aber noch ne kleine Frage zu dem s am Ende... wenn ich jetzt eine RegEx anwende die etwas sucht und ersetzt, also zB mit
Code: (dl )
$str =~ s/<%(.*?)%>/$1/s;
fehlen da dann die Newlines innerhalb dem <% und %> oder sind die noch da?[/quote]
wieso sollten die denn fehlen?
lektüre:
perldoc perlre
perldoc perlretut
perldoc perlrequick
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 8 Einträge, 1 Seite



View all threads created 2005-02-26 13:08.