Hello,
I want to find a keyword in the subject between two "*". How do I have to mask the "*" correctly?
I tried: if header :matches "subject" "\*xyz\**" if header :matches "subject" "\\*xyz\\**"
Hardy
On 7/2/21 4:43 AM, Hardy Flor wrote:
I want to find a keyword in the subject between two "*". How do I have to mask the "*" correctly?
I tried: if header :matches "subject" "\*xyz\**" if header :matches "subject" "\\*xyz\\**"
Use ":contains" instead of ":matches":
if header :contains "Subject" "*xyz*"
In ":contains", asterisks aren't wildcards and don't need escaping.
-- Robert L Mathews, Tiger Technologies, http://www.tigertech.net/
Thanks for the hint. But that means the keyword can be within the subject. I actually only wanted to look for it at the beginning.
Am 03.07.2021 um 00:17 schrieb Robert L Mathews:
Use ":contains" instead of ":matches":
if header :contains "Subject" "*xyz*"
In ":contains", asterisks aren't wildcards and don't need escaping.
On 7/3/21 12:36 AM, Hardy Flor wrote:
Thanks for the hint. But that means the keyword can be within the subject. I actually only wanted to look for it at the beginning.
Ah. In that case, you want:
if header :matches "Subject" "\\*xyz\\**"
I tested this and it works; see <https://datatracker.ietf.org/doc/html/rfc5228#section-2.7.1>:
"?" and "*" may be escaped as "\\?" and "\\*" in strings to match against themselves. The first backslash escapes the second backslash; together, they escape the "*". This is awkward, but it is commonplace in several programming languages that use globs and regular expressions.
-- Robert L Mathews, Tiger Technologies, http://www.tigertech.net/
participants (2)
-
Hardy Flor
-
Robert L Mathews