Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
Hi! Ich muss hier bei meinem Sommerjob (1 Monat) Perl programmieren - Problem: Ich hab keine Ahnung von Perl (onwohl es langsam besser wird). Ich hab allerdings so meine Probleme mit den Regular Expressions (Reguläre Ausdrücke). Ich habe lauter Strings bei denen ein Leerzeichen an erster Stelle steht also " Haus", " Hallo" usw. Ich brauche die Strings allerdings ohne diese Leerzeichen. Nun weiß ich nicht wie ich das hinbekomme das NUR das erste verschwindet... entweder es sind alle weg - "DannSiehtDerTextSoAus" (Großuchstaben nur zwecks lesbarkeit *g*) oder eben garkeines. Könnt mir jmd. sagen wie ich das hinbekomm?Vielen Dank ;) Lg, g1mp
Datum: 09.09.2005-08:01

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
Was ich noch vergessen habe: Der String sieht so aus" Text Text Text \n Text Text Text \n " Soll heißen die letze Zeile ist eine leere Zeile (ich glaube wegen dem \n) - das das \n nicht im String steht sondern als neue Zeile zu sehen ist - ist klar oder? Wie funzt das, dass neben den Leezeichen an erster Stelle auch noch leere Zeilen weg sind? Danke g1mp
Datum: 09.09.2005-08:07

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
| Hallo, probiers mal so: $szString =~ s/\A +//g; Gruß Ralf
Datum: 09.09.2005-08:27

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
| Was soll denn das \A in $szString =~ s/\A +//g; machen? Sorry aber ich versteh den Sinn nicht so ganz...
Datum: 09.09.2005-20:49

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
du musst in der regex einfach vor dem \s ein ^ setzten. das steht für den anfang des strings.
$string =~ s/^\s//;
Datum: 09.09.2005-08:52

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
Danke euch! Funktioniert super. Wisst ihr auch noch wie man eine komplett leere Zeile wegbekommt?also "text text" statt "text text " Nochmals Danke!!! lg, g1mp
Datum: 09.09.2005-09:11

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
| Hallo, ich denke: $szString =~ s/\A +\n//g; probiers mal ... ?!? Gruß Ralf
Datum: 09.09.2005-09:52

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
Funktioniert leider nicht - trotzdem danke. Leider weiß ich nicht warum es nicht funktioniert - die letze Zeile (leere Zeile) is leider immer noch da.Danke für die Hilfe, g1mp
Datum: 09.09.2005-10:21

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
| Hallo, Ich glaube, es ist einfach nur das "\n" der letzten Zeile, das Dir die "Probleme" bereitet... Du solltest beim Einlesen der Daten ein chomp wirken lassen: open INFILE, "<$szDatei"; while ( $szZeile = <INFILE> ) { chomp ($szZeile); # hier Deine weitere Verarbeitung... } # end while INFILE
Gruß RAlf
Datum: 09.09.2005-10:30

|
re: Leerzeichen - Reguläre Ausdrücke
|
Seitenanfang |
wenn du die datei in ein array eingelesen hast würd ichs so machen:
my @lines; # alle zeilen der originaldatei my @lines2 = (); #bearbeitete zeilen foreach my $line (@lines) { $line =~ s/^\s//; push @lines2, $line unless $liness =~ /^\n$/; }
Datum: 09.09.2005-10:32

|