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

ODF Toolkit TextNavigation can't find string containing a special character (dollar sign)

我正在尝试在 ODT 文档中查找占位符。因此,我正在使用 Apache ODF 工具包 - 简单 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)) 中删除 $ 时它起作用了。

代码然后returns输出:

[TestString] started from 1 in paragraph:$TestString

导致此错误的原因是什么?

问题似乎是,我必须转义 $-Symbol,因为它用作正则表达式(查看 this question 了解更多详情)。

所以将代码更改为

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

解决问题