officejs: поиск документов Word с использованием регулярных выражений - PullRequest
0 голосов
/ 10 марта 2019

Я хочу найти такие строки, как «число 1» или «число 152» или «число 36985».Во всех приведенных выше строках «число» будет постоянным, но цифры будут меняться и могут иметь любую длину.Я попытался Опция поиска , используя подстановочный знак, но, похоже, он не работает.Основные операторы RegEx, такие как +, похоже, не работают.Я пробовал 'number*[1-9]*' и 'number*[1-9]+', но не повезло.Это регулярное выражение выбирает только одну цифру.Например, если строка «число 12345», она соответствует только число 1 2345 (часть, выделенная жирным шрифтом).Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Попробуйте поставить < и > в конце строки поиска, чтобы указать начало и конец нужных строк.Это работает для меня: '<number [1-9]*>'.То же самое можно сказать и о '<number [1-9]@>'.Обратите внимание, что в подстановочных знаках Word используется @, где + используется в других системах RegEx.

0 голосов
/ 10 марта 2019

Word не использует регулярные выражения в своей функции поиска (поиска). У него есть собственный набор правил подстановочных знаков. Они очень похожи на RegEx, но не идентичны и не так мощны.

Используя подстановочные знаки Word, приведенный ниже текст поиска находит примеры, приведенные в вопросе. (Обратите внимание, что точка с запятой в 1;100 может быть чем-то другим, в зависимости от того, какой разделитель списка установлен в Windows (или на Mac). Моя европейская локаль использует точку с запятой; в Соединенных Штатах, например, используется запятая.

"number [0-9]{1;100}"

100 - это произвольное число, которое я выбрал для максимального количества повторений поискового термина непосредственно перед ним. В зависимости от того, как долго вы ожидаете число, оно может быть намного меньше ...

Логика поиска текста: number является литералом; допустимый диапазон символов после литерала - от 0 до 9; может быть от одного до ста этих символов - все в этом диапазоне совпадает.

Единственный способ использовать RegEx в Word - это извлечь строку и выполнить поиск по строке. Но это отделяет строку от документа, а это означает, что специфичное для Word содержимое (форматирование, поля и т. Д.) Будет потеряно.

...