【问题标题】:ODF Toolkit TextNavigation can't find string containing a special character (dollar sign)ODF Toolkit TextNavigation 找不到包含特殊字符(美元符号)的字符串
【发布时间】:2019-01-29 14:15:02
【问题描述】:

我正在尝试在 ODT 文档中查找占位符。因此,我使用的是 Apache ODF Toolkit - Simple 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

是什么导致了这个错误?

【问题讨论】:

    标签: java odf odftoolkit


    【解决方案1】:

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

    所以把代码改成

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

    解决问题

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2015-08-16
      • 1970-01-01
      • 2022-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多