Autor Thema: Brauche kurze Hilfe bei regex  (Gelesen 2576 mal)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18859
Brauche kurze Hilfe bei regex
« am: 05 August 2013, 00:46:46 »
Ich möchte in einem String alle Vorkommen von " ," durch "," ersetzen, also das Leerzeichen vor einem Komma löschen.
Alle regex-Varianten, die mir bisher dazu eingefallen sind, haben nicht so funktioniert wie erwartet.

=~ s/\s,/,/g

war mir das logischste, aber geht nicht. Bei Google finde ich eine Million Einträge zu regex, aber nix mit Kommas.

Danke für jeden zielführenden Hinweis.
-----------------------
Mach es möglichst simpel und mach es richtig,
dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Olaf

  • Gast
Aw: Brauche kurze Hilfe bei regex
« Antwort #1 am: 05 August 2013, 06:31:39 »
ich denke, dein Problem liegt woanders.
Das
my $str = "ich bin da ,wo die Blumen blühen ,und alles blau ist.";
print $str."\n";
$str =~ s/\s,/,/g;
print $str."\n";

geht jedenfalls.
Du mußt mal mehr vom drumherum posten.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18859
Aw: Brauche kurze Hilfe bei regex
« Antwort #2 am: 05 August 2013, 10:42:51 »
danke, die Sache hat sich schon erledigt. Es war eine optische Täuschung im WebFrontend von fhem. In Wirklichkeit war es nicht ein Leerzeichen und ein Komma, sondern ganz viele Leerzeichen vor dem Komma. Aber "gesehen" habe ich immer nur eines. Nach einem hexdump der Ausgabe war dann alles klar.

Die Lösung war dann
=~ s/\s+,/,/g;
-----------------------
Mach es möglichst simpel und mach es richtig,
dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!