我正在尝试使用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
}
但我没有得到任何比赛。有人可以帮忙吗?
编辑:作为参考,可以在https://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html找到OCaml的正则表达式文档。我使用http://pleac.sourceforge.net/pleac_ocaml/patternmatching.html作为OCaml正则表达式的示例我无法使其工作。
答案 0 :(得分:6)
在我看来,你似乎误读了文档。 " Str.regexp_string s
返回一个与s
完全匹配的正则表达式。"换句话说,使用re
,Str.string_match re "\\bfoo\\b" 0
将返回true;您对re
的定义等同于Str.regexp "\\\\bfoo\\\\b"
。你想要的是Str.regexp "\\bfoo\\b"
。