Проверка подстроки в 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 Ответ 2 String.exists Ответ 3 let contains_substring search target = String.substr_index search target <> None
Ответ 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