This project is library for evaluating string matching algorithms.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This project is library for evaluating string matching algorithms.


Search all positions:

List<int> result_int = ESMAJ.SearchAlgoritms.Search(pattern, source_text, ESMAJ.SearchAlgoritms.SearchAlgorithm.AlgorithmName);
//patterns and source_text are string variables.
public enum SearchAlgorithm { ApostolicoCrochemore, ApostolicoGiancarlo, BackwardNondeterministicDawgMatching,
            BackwardOracleMatching, BerryRavindran, BoyerMoore, BruteForce,
            Colussi, DeterministicFiniteAutomaton, ForwardDawgMatching, GalilGiancarlo, Horspool,
            KarpRabin, KMPSkipSearch, KnuthMorrisPratt, MaximalShift, MorrisPratt,
            NotSoNaive, OptimalMismatch, QuickSearch, Raita, ReverseColussi, ReverseFactor, ShiftOr, Simon,
            SkipSearch, Smith, StringMatchingonOrderedAlphabets, TunedBoyerMoore,
            TurboBM, TurboReverseFactor, TwoWay, ZhuTakaoka, NET_IndexOf, NET_IndexOf_Ordinal

Find first and break;

int res = ESMAJ.SearchAlgoritms.Search(tagname, source, startIndex, ESMAJ.SearchAlgoritms.SearchAlgorithm.AlgorithmName);
//startIndex is an integer value for reducing the search time of an algorithm.


Comparison of string matching algorithms in web documents. Buluş, H., N.; Uzun, E.; and Doruk, A. In International Scientific Conference’2017 (UNITECH’17), volume 2, pages 279-282, 2017.

Click for bibtex, downloads, all publications...