FHEM Forum

FHEM => Automatisierung => Perl für FHEM-User => Thema gestartet von: TomLee am 08 August 2021, 17:33:09

Titel: [geklärt] ersetzen von mehreren " in einem Reading
Beitrag von: TomLee am 08 August 2021, 17:33:09
Hallo,

in dem Reading external_name eines Callmonitor-Device werden mir doppelte Quotes als HTML angezeigt:

setstate cm_bla 2021-08-08 17:11:14 external_name bla ";bla1 bla2";

Aus der Kommandozeile ergibt :
{my $extn = ReadingsVal('cm_bla','external_name','unknown');;$extn}
bla  "bla1 bla2"


{my $extn = ReadingsVal('cm_bla','external_name','unknown');; $extn =~ s/&quot\;;//;;$extn}
bla bla1 bla2"


Warum wird nicht das letzte " ersetzt ?
Weil es direkt an bla2 hängt ? Wie muss ich das ersetzen dann anpassen?

Gruß

Thomas
Titel: Antw:ersetzen von " in einem Reading
Beitrag von: frober am 08 August 2021, 17:43:34
Das ist Standard beim regex, du musst ein 'g' anfügen, damit alle Matches ausgewertet werden.
$extn =~ s/&quot\;;//g

Titel: Antw:ersetzen von " in einem Reading
Beitrag von: TomLee am 08 August 2021, 17:51:59
Ah ja, jetzt vergess ichs nicht mehr, Danke.

So klappts jetzt, nicht so wie vorgeschlagen:


Kommandozeile:
{my $extn = ReadingsVal('cm_bla','external_name','unknown');; $extn =~ s/&quot\;;//g;;$extn}

bla bla1 bla2
Titel: Antw:ersetzen von " in einem Reading
Beitrag von: frober am 08 August 2021, 17:54:32
Zitat von: TomLee am 08 August 2021, 17:51:59
Ah ja, jetzt vergess ichs nicht mehr, Danke.

So klappts jetzt, nicht so wie vorgeschlagen:

{my $extn = ReadingsVal('cm_bla','external_name','unknown');; $extn =~ s/&quot\;;//g;;$extn}

bla bla1 bla2


Ich hatte meinen Fehler selbst bemerkt und nochmals korrigiert. Hast du wahrscheinlich nicht mehr gesehen...
Aber wenn es nun passt. ;)