Schrift
[thread]7594[/thread]

String abspalten: muss einen String aus einer Zeile trenne



<< >> 6 Einträge, 1 Seite
sit
 2006-01-07 01:02
#61539 #61539
User since
2005-12-30
8 Artikel
BenutzerIn
[default_avatar]
Hallo, nun ich bin gerade auf dem Holzweg

Code: (dl )
1
2
3
4
if($mech->content() =~ m{$leer(.*)"}) {
print  $1\n;

}


nun dummer weise findet er die Stelle die in $leer steht, macht aber kein Ende bei den Anführungszeichen, sondern bringt mir den ganzen Inhalt ab dieser Stelle.... obwohl er eigentlich mehrere Zeilen bringen müsste....

hat einer eine Idee?

Edit by Dubu: korrekte Code-Tags\n\n

<!--EDIT|Dubu|1136592199-->
esskar
 2006-01-07 02:12
#61540 #61540
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schreib mal einen \ vor das " oder versuch es mit (.*?)
Dubu
 2006-01-07 02:13
#61541 #61541
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Er bringt dir wahrscheinlich nicht wirklich den ganzen Inhalt, sondern den groesstmoeglichen Match zwischen dem, was in $leer steht und dem letzten vorkommenden Anfuehrungszeichen. Das ist genau das, was .* bedeutet.

Wenn du etwas anderes moechtest, z.B. den kleinstmoeglichen Match, dann brauchst du eher Muster wie [^"]* oder .*?. Siehe dazu perlrequick, perlretut, perlre.
Dubu
 2006-01-07 02:15
#61542 #61542
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=esskar,07.01.2006, 01:12]schreib mal einen \ vor das "
[/quote]
Was soll der genau machen??

Quote
oder versuch es mit (.*?)

Klingt sinnvoll.
sit
 2006-01-07 12:21
#61543 #61543
User since
2005-12-30
8 Artikel
BenutzerIn
[default_avatar]
Danke Leute,

das Fragezeichen funktioniert. der Hut dagegen funktioniert nicht.


Tausend dank.

Backslash funktioniert auch nicht, das hatte ich schon versucht.
Dubu
 2006-01-08 00:57
#61544 #61544
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=sit,07.01.2006, 11:21]das Fragezeichen funktioniert. der Hut dagegen funktioniert nicht.[/quote]
Hm. Beides sollte hier eigentlich aequivalent sein.

So angewendet?
Code: (dl )
1
2
3
if($mech->content() =~ m{$leer([^"]*)"}) {
   print  $1\n;
}

Da sollte alles ausgegeben werden, was zwischen "Inhalt von $leer als Regex" und dem naechsten Anfuehrungszeichen steht - evtl. auch ein Leerstring.
<< >> 6 Einträge, 1 Seite



View all threads created 2006-01-07 01:02.