想为重复排除文件写一个镜头。例子:
+ /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- /" = ?
这会导致错误。我从实验中知道,正则表达式/(\+|-)/
与第二行不匹配。问题是:为什么破折号似乎无法匹配,即使被\
?