我正在尝试 Reason 并尝试使用正则表达式,但没有任何匹配项。 AFAIK Reason 没有任何特定的正则表达式相关的东西,所以我只是离开 OCaml 文档。

我的字符串看起来像:

let name = "const {foo} = bar"; 

我使用的正则表达式是

let re = Str.regexp_string "\\bfoo\\b" 
try { 
  Str.search_forward re name 0; 
  /* do something */ 
} { 
 | Not_found => acc 
} 

但是我没有得到任何匹配项。谁能帮忙?

编辑:作为引用,OCaml 的正则表达式文档可以在 https://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html 找到.我用的是 http://pleac.sourceforge.net/pleac_ocaml/patternmatching.html作为 OCaml 正则表达式的示例,我无法让它工作。

请您参考如下方法:

在我看来,您似乎误读了文档。 “Str.regexp_string s 返回与 s 完全匹配的正则表达式,除此之外别无其他。”换句话说,对于您的 reStr.string_match re "\\bfoo\\b"0 将返回 true;并且您对 re 的定义等同于 Str.regexp "\\\\bfoo\\\\b"。你想要的是 Str.regexp "\\bfoo\\b"


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!