2012-04-17 39 views
3

在Ocaml中是否有标准方式将(例如)a\n(三字节字符串:0x61,0x5c,0x6e)转换为两字节字符串:0x61,0x0aOcaml中的转义序列

我的Ocaml程序可以接收带有转义字符的字符串,如何“unes​​cape”它们?

回答

1

如果您正在使用的OCaml 4.0.0或更高版本,可以使用Scanf.unescaped

实施例:

# open Scanf 
# Scanf.unescaped "a\\n";; 
- : bytes = "a\n"  
# Scanf.unescaped "\\n\\t\\\\";; 
- : bytes = "\n\t\\" 

接口:(via OCaml docs

val unescaped : string -> string 

返回与转义序列的参数的副本,以下OCaml中的词汇公约,换成它们对应的特殊字符。如果参数中没有转义序列,则仍然返回一个副本,与String.escaped相反。

由于4.00.0