0

我正在尝试在 ODT 文档中查找占位符。因此,我使用的是 Apache ODF Toolkit - Simple API。

我创建了一个包含文本的 odt 文件$TestString。以下代码应该可以找到它:

Document doc = TextDocument.loadDocument("path/to/test.odt");
TextNavigation search = new TextNavigation("$TestString", doc);
while (search.hasNext()) {
    TextSelection item = (TextSelection) search.nextSelection();
    System.out.println(item);
}

我的问题是,这个搜索没有找到我的字符串。但是当我从 TextNavigation ( new TextNavigation("TestString", doc)) 中删除 $ 时它会起作用。

然后代码返回输出:

[TestString] 从段落 1 开始:$TestString

是什么导致了这个错误?

4

1 回答 1

0

问题似乎是,我必须转义$-Symbol 因为它被用作正则表达式(检查这个问题以获取更多详细信息)。

所以将代码更改为

TextNavigation search = new TextNavigation("\\$TestString", templateDoc);

解决问题

于 2018-08-23T08:51:23.207 回答