[geklärt] ersetzen von mehreren " in einem Reading

Begonnen von TomLee, 08 August 2021, 17:33:09

Vorheriges Thema - Nächstes Thema

TomLee

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

frober

#1
Das ist Standard beim regex, du musst ein 'g' anfügen, damit alle Matches ausgewertet werden.
$extn =~ s/&quot\;;//g

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

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

frober

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. ;)
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...