mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-28 09:16:15 +00:00
32 lines
998 B
Markdown
32 lines
998 B
Markdown
# `kumo.regex_set_map.new([{MAP}])`
|
|
|
|
{{since('2023.11.28-b5252a41')}}
|
|
|
|
Create a new *regex set map* from a set of key/value pairs.
|
|
|
|
A regex set can efficiently match a haystack string against a list of multiple
|
|
regular expressions in a single search operation. The search operation on the
|
|
regex set knows which regular expression matched, and that is used here to map
|
|
to a more meaningful value.
|
|
|
|
Since the regex set needs to be compiled, the set is considered to be
|
|
*immutable*; it cannot have entries added after it has been created,
|
|
so you need to build up a lua table with the mapping to pass to `new`.
|
|
|
|
```lua
|
|
-- This example categorizes text into either 'hello', 'bye' results
|
|
local map = kumo.regex_set_map.new {
|
|
hello = 'hello',
|
|
bye = 'bye',
|
|
later = 'bye',
|
|
-- more complex patterns need to quote the map key:
|
|
['Good day'] = 'hello',
|
|
}
|
|
|
|
assert(map['hello there'] == 'hello')
|
|
assert(map['goodbye'] == 'bye')
|
|
assert(map['see you later'] == 'bye')
|
|
assert(map['not.set'] == nil)
|
|
```
|
|
|