[exim] Re: Exim filter get number before the dot

Top Page
Delete this message
Reply to this message
Author: Sławomir Dworaczek
Date:  
To: exim-users
Subject: [exim] Re: Exim filter get number before the dot
Unfortunately, any attempts to use regular expressions that attempt to
retrieve the number before the digit result in an error


$h_X-Spam-Potential:{{^(\\d+).*\$}{\$1}} is above 16

Error in system filter: unrecognized condition word ""

the workaround is to take the whole number and remove the dot
for example, if I want the condition to be met when the number is greater
than 16, I must enter the number 160 in the variable.

${sg{$h_X-Spam-Potential:}{\\.}{}} is above 160

I don't know if it's some kind of error in the system_filter code

Slawek

----- Original Message -----
From: "Sławomir Dworaczek" <slawek@???>
To: <exim-users@???>
Sent: Saturday, September 9, 2023 9:22 PM
Subject: Re: [exim] Re: Exim filter get number before the dot


> Heloo Jeremy
>
> This way the values always have one digit after the decimal point
> I just need the number before the decimal point
>
> Regards
> Slawek
>
>
> ----- Original Message -----
>
>
> From: "Jeremy Harris via Exim-users" <exim-users@???>
> To: <exim-users@???>
> Sent: Saturday, September 9, 2023 3:11 PM
> Subject: [exim] Re: Exim filter get number before the dot
>
>
>> On 09/09/2023 13:43, Sławomir Dworaczek via Exim-users wrote:
>>> In exim filter, numeric values in the "is above" rule are only accepted
>>> as integers
>>> I have to execute the delivery command if the header value is above
>>> some number,
>>> unfortunately many of them are written in the header and are decimal
>>> numbers, as a result I get an error
>>> error in filter file: malformed numerical string "16.34"
>>> here is my expression
>>> if
>>> $h_X-Spam-Potential: is not "" and
>>> ${sg{$h_X-Spam-Potential:}{^(\d+)\..*}{$1}} is above 16
>>> then
>>> ......
>>> theoretically, only the number 16 before the dot should be taken into
>>> account but unfortunately this doesn't happen :( thanks for help Slawek
>>
>>
>> Do the values have a fixed number of digits after the decimal point?
>> You could just delete the dot using ${sg...}.
>>
>> Or if you know there's always at least one, and you only needs tenths,
>> ditto but only taking 1 digit for the second group.
>>
>> --
>> Cheers,
>> Jeremy
>>
>>
>> --
>> ## subscription configuration (requires account):
>> ##
>> https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
>> ## unsubscribe (doesn't require an account):
>> ## exim-users-unsubscribe@???
>> ## Exim details at http://www.exim.org/
>> ## Please use the Wiki with this list - http://wiki.exim.org/
>>
>



--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/