Найти индекс подстроки в Юлии - PullRequest
4 голосов
/ 07 июня 2019

Как найти индекс подстроки bc в строке abcde?

Что-то вроде indexof("bc", "abcde")?

1 Ответ

6 голосов
/ 07 июня 2019

Вы можете использовать findfirst или findlast, чтобы найти позицию первого или последнего вхождения подстроки в строке соответственно.

julia> findfirst("bc", "abcde")
2:3

julia> findlast("bc", "abcdebcab")
6:7

findfirst и findlast вернут объект диапазона, охватывающий начало и конец вхождения, если подстрока встречается в строке, или nothing в противном случае.Для первого индекса диапазона вы можете использовать result[1] или first(result).

result = findfirst(patternstring, someotherstring)

if isnothing(result)
    # handle the case where there is no occurrence
else
    index = result[1]
    ...
end

Также есть findnext и findprevфункции.findnext находит первое вхождение подстроки после заданной позиции, тогда как findprev находит последнее вхождение перед заданной позицией.


Обратите внимание, что findfirst, findlast, findnextили findprev используются не только для поиска в строке, но и для поиска в других коллекциях, таких как массивы.

...