StringTools
HammingSearch
find the first approximate occurrences of a string in another string
HammingSearchAll
find all approximate occurrences of a string in another string
Calling Sequence
Parameters
Description
Examples
HammingSearch( pattern, text, hd )
HammingSearchAll( pattern, text, hd )
pattern
-
string
text
hd
Hamming distance
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.
All of the StringTools package commands treat strings as (null-terminated) sequences of 8-bit (ASCII) characters. Thus, there is no support for multibyte character encodings, such as unicode encodings.
with⁡StringTools:
HammingSearch⁡foo,defoe,0
0
HammingSearch⁡foo,defoe,1
3
HammingSearch⁡foo,defoe,2
2
HammingSearch⁡foo,defoe,3
1
HammingSearch⁡foo,defoe,4
HammingSearch⁡gataa,cagataagagaa,2
HammingSearchAll⁡gataa,cagataagagaa,2
3,0,8,1
See Also
searchtext
StringTools[ApproximateSearch]
StringTools[ApproximateSearchAll]
StringTools[HammingDistance]
StringTools[Search]
StringTools[SearchAll]
Download Help Document