如何在 OCaml 中获取字符串片段?

How to get slice of string in OCaml?

所以我正在用 OCaml 编写 JSON 解析器,我需要获取一段字符串。更具体地说,我需要获取字符串的前 n 个字符,以便与它们进行模式匹配。

这是一个示例字符串:

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

那么,我怎样才能只使用几行 OCaml 代码来获取前 4 个字符(null)?

P.S。我已经考虑过使用 input.[0..4] 之类的东西,但我不完全确定它是如何工作的,我对 OCaml 和 ML 系列相当陌生。

使用内置 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

如果您这样做不是为了自学,我强烈建议您为此目的使用可用的库之一,例如 yojson (https://ocaml-community.github.io/yojson/yojson/Yojson/index.html) .