ODF Toolkit TextNavigation не может найти строку, содержащую специальный символ (знак доллара)

Я пытаюсь найти заполнитель в ODT-документе. Поэтому я использую Apache ODF Toolkit - Простой 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

Что вызывает эту ошибку?

1 ответ

Решение

Кажется, проблема была в том, что я должен убежать от $-Символ, потому что он используется в качестве регулярного выражения (проверьте этот вопрос для более подробной информации).

Так что изменение кода на

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

решает проблему

Другие вопросы по тегам