StringTools[HammingSearch] - find the first approximate occurrences of a string in another string
StringTools[HammingSearchAll] - find all approximate occurrences of a string in another string
HammingSearch( pattern, text, hd )
HammingSearchAll( pattern, text, hd )
The HammingSearch(pattern, text, hd) command locates the first occurrence of a substring of the string text that is close to the string pattern in terms of its Hamming distance from pattern. Specifically, it locates the first such substring whose Hamming distance from pattern is less than or equal to hd. It returns the offset of the occurrence found, or the value 0 if there is no substring of text that is within Hamming distance hd of pattern.
The HammingSearchAll(pattern, text, hd) command locates all occurrences of substrings of the string text that are within Hamming distance hd of the string pattern. An expression sequence of pairs of the form offset,dist is returned, where offset is the offset of the match, and dist is the Hamming distance of that match to the string pattern.
Note that for hd=0, proximity searching degenerates into exact searching, for which StringTools[Search] and StringTools[SearchAll] provide faster algorithms.
Since small Hamming distance bounds hd are most useful in practice, the algorithm is optimized for this case. Furthermore, if length⁡pattern≤hd, then every possible substring of text with length equal to the length of pattern matches pattern.
For approximate searching using the Levenshtein metric (instead of the Hamming metric), see the StringTools[ApproximateSearch] help page.
searchtext, string, StringTools, StringTools[ApproximateSearch], StringTools[ApproximateSearchAll], StringTools[HammingDistance], StringTools[Search], StringTools[SearchAll]
Download Help Document