Operator Scope of Action:
Operator First Added:
The operator .containsAnyOf("patternList") is true if any of the words in a set of words (i.e. a list) is contained in the chained-to target string. As shown below, the list may have only one entry. The test is case-sensitive (previously it was case-insensitive). For example:
$MyBoolean = $Text.containsAnyOf("emulate");
Will be true if the tested note's $Text contains the word "emulate". A more applied example:
$MyBoolean = $Text.containsAnyOf(wordsRelatedTo("emulate"));
Will be true if the tested note's $Text contains the word "aspire".
patternList implies using a list of values (ideally with no dupes). This can be a literal list of 1 or more values—as in the example above, or an attribute reference holding a list of values, for instance:
$MyBoolean = $Text.containsAnyOf($MySet);
It is important to note that .containsAnyOf() is always a case-insensitive test. Thus in the first example above, it will match "emulate" but not "Emulate" or any other case variant of the word.
Although the examples above use whole words the list in patternList is actually processed assuming they are regular expressions (which may of course be literal strings). Thus in the first example above, it will match both "emulate" and "emulated" but not "emulating". The test value "emulate\b", expecting a word break after the final 'e' would this match "emulate" but not "emulated".
For a case-insensitive version of this operator see String.icontainsAnyOf().
Note that behaviour of the operator is slightly different if chained to a List or Set.