lastIndexOf

fnptrdiff_t lastIndexOf(Char)(const(Char)[] s, in dchar c, in CaseSensitive cs = Yes.caseSensitive) if (isSomeChar!Char) @safe pure

Searches for the last occurrence of a character in a string.

Parameters

sstring to search for c in
ccharacter to search for in s
startIdxindex of a well-formed code point in s to start searching from; defaults to 0
csspecifies whether comparisons are case-sensitive (Yes.caseSensitive) or not (No.caseSensitive)

Returns

If c is found in s, then the index of its last occurrence is

returned. If c is not found or startIdx is greater than or equal to s.length, then -1 is returned. If the parameters are not valid UTF, the result will still be either -1 or in the range [startIdx .. s.length], but will not be reliable otherwise.

Throws

If the sequence ending at startIdx does not represent a well-formed

code point, then a UTFException may be thrown.

fnptrdiff_t lastIndexOf(Char)(const(Char)[] s, in dchar c, in size_t startIdx, in CaseSensitive cs = Yes.caseSensitive) if (isSomeChar!Char) @safe pure

Ditto

fnptrdiff_t lastIndexOf(Char1, Char2)(const(Char1)[] s, const(Char2)[] sub, in CaseSensitive cs = Yes.caseSensitive) if (isSomeChar!Char1 && isSomeChar!Char2) @safe pure

Searches for the last occurrence of a substring in a string.

Parameters

sstring to search for sub in
subsubstring to search for in s
startIdxindex to a well-formed code point in s to start searching from; defaults to 0
csspecifies whether comparisons are case-sensitive (Yes.caseSensitive) or not (No.caseSensitive)

Returns

The index of the last occurrence of sub in s. If sub is not found

or startIdx is greater than or equal to s.length, then -1 is returned. If the parameters are not valid UTF, the result will still be either -1 or in the range [startIdx .. s.length], but will not be reliable otherwise.

Throws

If the sequence starting at startIdx does not represent a well-formed

code point, then a UTFException may be thrown.

Bugs

Does not work with case-insensitive strings where the mapping of toLower and toUpper is not 1:1.
fnptrdiff_t lastIndexOf(Char1, Char2)(const(Char1)[] s, const(Char2)[] sub, in size_t startIdx, in CaseSensitive cs = Yes.caseSensitive) if (isSomeChar!Char1 && isSomeChar!Char2) @safe pure

Ditto