View source code
Display the source code in std/algorithm/searching.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

std.algorithm.searching.BoyerMooreFinder/boyerMooreFinder - multiple declarations

Function boyerMooreFinder

Sets up Boyer-Moore matching for use with find below. By default, elements are compared for equality.

BoyerMooreFinder!(binaryFun!pred,Range) boyerMooreFinder(alias pred, Range) (
  Range needle
)
if (isRandomAccessRange!Range && hasSlicing!Range || isSomeString!Range);

BoyerMooreFinder allocates GC memory.

Parameters

NameDescription
pred Predicate used to compare elements.
needle A random-access range with length and slicing.

Returns

An instance of BoyerMooreFinder that can be used with find() to invoke the Boyer-Moore matching algorithm for finding of needle in a given haystack.

Example

auto bmFinder = boyerMooreFinder("TG");

string r = "TAGTGCCTGA";
// search for the first match in the haystack r
r = bmFinder.beFound(r);
writeln(r); // "TGCCTGA"

// continue search in haystack
r = bmFinder.beFound(r[2 .. $]);
writeln(r); // "TGA"

Struct BoyerMooreFinder

Sets up Boyer-Moore matching for use with find below. By default, elements are compared for equality.

struct BoyerMooreFinder(alias pred, Range) ;

BoyerMooreFinder allocates GC memory.

Constructors

NameDescription
this (needle)

Properties

NameTypeDescription
length[get] size_t

Methods

NameDescription
beFound (haystack)

Aliases

NameDescription
opDollar

Parameters

NameDescription
pred Predicate used to compare elements.
needle A random-access range with length and slicing.

Returns

An instance of BoyerMooreFinder that can be used with find() to invoke the Boyer-Moore matching algorithm for finding of needle in a given haystack.

Example

auto bmFinder = boyerMooreFinder("TG");

string r = "TAGTGCCTGA";
// search for the first match in the haystack r
r = bmFinder.beFound(r);
writeln(r); // "TGCCTGA"

// continue search in haystack
r = bmFinder.beFound(r[2 .. $]);
writeln(r); // "TGA"

Authors

Andrei Alexandrescu

License

Boost License 1.0.