我有一个PartitionScanner,它在Eclipse的自定义文本编辑器插件中扩展了RuleBasedPartitionScanner。我遇到分区扫描程序检测较大字符串中的字符序列的问题,导致文档被错误地分区。例如,在m分区扫描程序的构造函数中,我有以下规则设置:
public MyPartitionScanner() {
...
rules.add(new MultiLineRule("SET", "ENDSET", mytoken));
...
}
但是,如果我碰巧使用包含字符序列“SET”的令牌,则分区扫描程序似乎会继续搜索endSequence(“ENDSET”)并将文档的其余部分设置为单个分区设置为“即为MyToken“。
var myRESULTSET34 = ...
有没有办法让分区扫描程序忽略上面标记中的单词“SET”?并且只识别整个单词“SET”?
谢谢。
答案 0 :(得分:3)
按原样使用MultilineRule,您将无法区分。但是你可以创建自己的子类来覆盖sequenceDetected
并在super impl返回true时进行回顾/预测,以确保它在EOF /空格之前/后面。如果没有,则将字符推回扫描仪并返回false。