2017-07-13 9 views
1

Reasonを試していますが、正規表現を使用しようとしていますが、一致するものはありません。 AFAIK Reasonには特定の正規表現に関連するものはありませんので、私はOCamlのドキュメントを書きます。(ReasonML)Regex bが一致しません

私の文字列は次のようになります。

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にあります。私は、OCaml正規表現の例としてhttp://pleac.sourceforge.net/pleac_ocaml/patternmatching.htmlを使用していましたが、動作させることができません。

+0

サポートしている正規表現の構文を知るために使用したページに_link_を投稿できますか?ありがとう! – sln

+0

単語境界の後のスラッシュはどうですか? –

+1

'\\ bfoo \\ b" '最後にスラッシュを入れてはいけませんか? –

答えて

5

ドキュメントを誤解しているように見えます。 "Str.regexp_string sは、正確にsと一致する正規表現を返します。つまり、reではStr.string_match re "\\bfoo\\b" 0がtrueを返します。 reの定義はStr.regexp "\\\\bfoo\\\\b"に相当します。あなたが望んだのはStr.regexp "\\bfoo\\b"でした。

関連する問題