Как получить кусок строки в OCaml? - PullRequest
0 голосов
/ 17 апреля 2020

Итак, я пишу синтаксический анализатор JSON в OCaml, и мне нужно получить фрагмент строки. Более конкретно, мне нужно получить первые n символов строки, чтобы я мог сопоставить их с шаблоном.

Вот пример строки:

"null, \"field2\": 25}"

Итак, как я могу использовать только пара строк кода OCaml, чтобы получить только первые 4 символа (null)?

PS Я уже думал об использовании чего-то вроде input.[0..4], но я не совсем уверен, как это работает, Я достаточно новичок в OCaml и семье ML.

1 Ответ

2 голосов
/ 17 апреля 2020

Использование встроенной функции sub должно сделать работу:

let example_string = "null, \"field2\": 25}"
(*val example_string : string = "null, \"field2\": 25}" *)
let first_4 = String.sub example_string 0 4
(*val first_4 : string = "null" *)

Предлагаю ознакомиться с официальной документацией: https://caml.inria.fr/pub/docs/manual-ocaml/libref/String.html

И если вы не делаете это для самообучения, я настоятельно рекомендую использовать для этой цели одну из доступных библиотек, например, yo json (https://ocaml-community.github.io/yojson/yojson/Yojson/index.html).

...