From ae9ab404ab7290a50656d321b3d3b4249b35bffd Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sat, 18 Oct 2014 06:07:58 +0000 Subject: [PATCH] fhem.pl: eventMap checks if regexp is word only to use \b. (Forum #207899) git-svn-id: https://svn.fhem.de/fhem/trunk@6781 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index af97d5348..6c91ec0f6 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -3261,12 +3261,21 @@ ReplaceEventMap($$$) foreach my $rv (@emList) { # Real-Event-Regexp:GivenName[:modifier] my ($re, $val, $modifier) = split(":", $rv, 3); + my $reIsWord = ($re =~ m/^\w*$/); # dim100% is not \w only, cant use \b next if(!defined($val)); if($dir) { # event -> GivenName - if($str =~ m/\b$re\b/) { - $str =~ s/\b$re\b/$val/; - $changed = 1; - last; + if($reIsWord) { + if($str =~ m/\b$re\b/) { + $str =~ s/\b$re\b/$val/; + $changed = 1; + last; + } + } else { + if($str =~ m/$re/) { + $str =~ s/$re/$val/; + $changed = 1; + last; + } } } else { # GivenName -> set command @@ -3274,6 +3283,12 @@ ReplaceEventMap($$$) $nstr = $re; $changed = 1; last; + } elsif($reIsWord) { + if($nstr =~ m/$val/) { + $nstr =~ s/$val/$re/; + $changed = 1; + last; + } } elsif($nstr =~ m/\b$val\b/) { $nstr =~ s/\b$val\b/$re/; $changed = 1;