二重除外ファイル用のレンズを書きたい。例:
+ /etc
- /
したがって、私のレンズは次のようになります。
module DuplyExclude =
let nl = del /[\n]+/ "\n"
let entry = [ label "entry" . [ label "op" . store /(\+|-)/ ] . del /[ \t]+/ " " . [ label "path" . store /\/[^ \t\n\r]+/ ] ]
let lns = ( entry . nl )*
test lns get "+ /hello\n+ /etc\n- /" = ?
これにより、エラーが発生します。少し実験してみると、正規表現/(\+|-)/
が 2 行目に一致しないことがわかりました。問題は次のとおりです: でエスケープされたとしても、ダッシュが一致しないように見えるのはなぜ\
ですか?