[Rspamd-Users] Regex in Multimap does not work

Gerald Galster list+rspamd at gcore.biz
Fri Nov 19 13:19:42 UTC 2021


>> i have a multimap for my headers to add score 8, if regex matches.
>> Rule is defined in /etc/rspamd/local.d/multimap.conf
>> 
>> MY_OWN_SYMBOL {
>>   type = "content";
>>   filter = "headers"; # can be headers, full, oneline, text, rawtext
>>   map = "${LOCAL_CONFDIR}/local.d/gasp_scoring_subject.map";
>>   description = "Gasperlmair Scoring-Header";
>>   regexp = true;
>> 
>> I want to match following string in subject (beginning with the word
>> auftrag)
>> auftrag Apotheke
>> 
>> but the following regex does not match the string auftrag Apotheke
>> 
>> /^auftrag Apotheke/ MY_OWN_SYMBOL:8
>> 
>> It only works, if i'm not using ^ but then it also matches words
>> beginning with  ...auftrag (for Example)
>> 
>> Thx for helping
> 
> 
> \b


Just to elaborate, \b means boundary. It's not a char, it's the
transition from a word-character to a non-word-character or vice
versa.

/\bauftrag/ does not match e.g. /Beauftragter/ although it contains
"auftrag" because the boundary is missing.


\b     Match a \w\W or \W\w boundary

\w     Match a "word" character (alphanumeric plus "_", plus
       other connector punctuation chars plus Unicode marks)

\W     Match a non-"word" character

https://perldoc.perl.org/perlre
https://perldoc.perl.org/perlretut

In case you use hyperscan, keep in mind it has not all the feature
of pcre (subexpressions, ...).

https://www.hyperscan.io/2015/10/20/match-regular-expressions/

Or you might try

/^Subject: auftrag Apotheke/

Best regards,
Gerald


More information about the Users mailing list