Проверка подстроки в Ocaml

Может кто-нибудь помочь мне в кодировании эффективной проверки подстроки в OCaml? Учитывая две строки, проверьте, содержит ли первая вторую?

Используя модуль Str, можем ли мы это сделать?

Ответ 1

Что-то вроде этого может работать:

let contains s1 s2 =
    let re = Str.regexp_string s2
    in
        try ignore (Str.search_forward re s1 0); true
        with Not_found -> false

Вот несколько тестов функции:

# contains "abcde" "bc";;
- : bool = true
# contains "abcde" "bd";;
- : bool = false
# contains "abcde" "b.";;
- : bool = false
# contains "ab.de" "b.";;
- : bool = true

Ответ 3

let contains_substring search target =
    String.substr_index search target <> None