ODF Toolkit TextNavigation找不到包含特殊字符(美元符号)的字符串

时间:2018-08-23 08:48:29

标签: java odf odftoolkit

我正在尝试在ODT文档中找到一个占位符。因此,我正在使用Apache ODF Toolkit-简单API。

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

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

什么原因导致此错误?

1 个答案:

答案 0 :(得分:0)

问题似乎在于,我必须转义$-符号,因为它被用作正则表达式(更多信息请查看this question)。

因此将代码更改为

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

解决了问题