我正在尝试在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
什么原因导致此错误?
答案 0 :(得分:0)
问题似乎在于,我必须转义$
-符号,因为它被用作正则表达式(更多信息请查看this question)。
因此将代码更改为
TextNavigation search = new TextNavigation("\\$TestString", templateDoc);
解决了问题