about_search_fixed: Locale-Insensitive Fixed Pattern Matching in stringi


String searching facilities described here provide a way to locate a specific sequence of bytes in a string. The search engine’s settings may be tuned up (for example to perform case-insensitive search) via a call to the stri_opts_fixed function.

Byte Compare

The fast Knuth-Morris-Pratt search algorithm, with worst time complexity of O(n+p) (n == length(str), p == length(pattern)) is implemented (with some tweaks for very short search patterns).

Be aware that, for natural language processing, fixed pattern searching might not be what you actually require. It is because a bitwise match will not give correct results in cases of:

  1. accented letters;

  2. conjoined letters;

  3. ignorable punctuation;

  4. ignorable case,

see also about_search_coll.

Note that the conversion of input data to Unicode is done as usual.


Marek Gagolewski and other contributors