From caf0b75dc107fce73f281e21d4adccea9c6821e1 Mon Sep 17 00:00:00 2001 From: hexenmeister Date: Mon, 25 Oct 2021 11:05:19 +0000 Subject: [PATCH] fix/improvement: check curly braces in expression (capture from first to last brace) git-svn-id: https://svn.fhem.de/fhem/trunk@25117 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_MQTT_GENERIC_BRIDGE.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/10_MQTT_GENERIC_BRIDGE.pm b/fhem/FHEM/10_MQTT_GENERIC_BRIDGE.pm index 539492870..c3287185b 100644 --- a/fhem/FHEM/10_MQTT_GENERIC_BRIDGE.pm +++ b/fhem/FHEM/10_MQTT_GENERIC_BRIDGE.pm @@ -30,6 +30,11 @@ # # CHANGE LOG # +# 26.10.2021 1.4.4 +# fix/improvement : in _evalValue2 Regex Pattern angepasst (betrifft expressions) +# Ineinander eingelegte {}-Blöcke werden jetzt komplett gefunden +# (von der ersten '{' zu zu der letzten '}' Klammer) +# # 30.09.2021 1.4.3 # fix : IODev fix be Beta-User # @@ -424,7 +429,7 @@ use GPUtils qw(:all); #my $DEBUG = 1; my $cvsid = '$Id$'; -my $VERSION = "version 1.4.3 by hexenmeister\n$cvsid"; +my $VERSION = "version 1.4.4 by hexenmeister\n$cvsid"; my %sets = ( ); @@ -1382,7 +1387,8 @@ sub _evalValue2 { # TODO : Maskierte Klammern unterstuetzen? $str =~ m/^(.*)(\\{.*\\})(.*)({.*})(.*)$/;; $1.$2.$3.$4.$5 - irgendwie so #if($str =~ m/^{.*}$/) { #if($str =~ m/^(.*)({.*})(.*)$/) { - if($str =~ m{\A(.*)(\{.*\})(.*)\z}x) { # forum https://forum.fhem.de/index.php/topic,117659.msg1121004.html#msg1121004 + #if($str =~ m{\A(.*)(\{.*\})(.*)\z}x) { # forum https://forum.fhem.de/index.php/topic,117659.msg1121004.html#msg1121004 + if($str =~ m{\A([^\{]*)(\{.*\})([^\}]*)\z}x) { # Ineinander eingelegte {}-Blöcke komplett finden my $s1 = $1 // q{}; #$s1='' unless defined $s1; my $s2 = $2 // q{}; #$s2='' unless defined $s2; my $s3 = $3 // q{}; #$s3='' unless defined $s3;