[ID CS4-CS6] Запрос корректно работает при поиске/замене и некорректно в GREP-стиле

  • Автор темы Автор темы agava
  • Дата начала Дата начала

agava

Участник
Топикстартер
Сообщения
45
Реакции
1
Добрый день! Требуется помощь.

Ниже исходный текст. Цветом выделены сноски. Задача сделать их superscript.
Снимок экрана 2019-01-15 в 2.20.55 PM.png

Ищу следующее регулярное выражение
(\d(\,\s\d){0,}) любая цифра, за которой следует запятая с пробелом ноль или несколько раз

Ищу по трем условиям
(?<=[a-z]) после любой маленькой буквы
(?<=\;\s) после точки с запятой и пробела
(?<=\n|\r) после конца абзаца или принудительного переноса

Итоговый запрос выглядит так:
(?<=\;\s)(\d(\,\s\d){0,})|(?<=[a-z])(\d(\,\s\d){0,})|(?<=\n|\r)(\d(\,\s\d){0,})

Если применить его в окне Find/Change, все работает, получается нормальный результат:
Снимок экрана 2019-01-15 в 2.21.49 PM.png

Но когда пробую прописать абсолютно тот же запрос в виде GREP Style, результат получается другой (обвела сноску, которую игнорирует):
Снимок экрана 2019-01-15 в 2.22.03 PM.png

Что я делаю не так?
Вот файл на всякий случай
test.indd
 
Стиль относится к одному абзацу, а у вас выделение в пределах двух разных абзацев.
 
  • Спасибо
Реакции: agava
Когда вы ищете некую последовательность в тексте из нескольких параграфов, то у вас может быть "после конца абзаца или принудительного переноса ". А вот GREP-стиль ищет текст в параграфе, к которому применен.
 
  • Спасибо
Реакции: agava
А, поняла))) Значит последнее условие поиска нужно поменять на
(?<=^)\d(?=\u)
Верно?
 
А сноски у вас самодельные что-ли?
Если нет то знак сноски ищется по символу ~F
 
Я бы делал стиль "Сноска" для каждого условия.
Снимок экрана 2019-01-17 в 00.06.39.png

Третье условие сработает и после \p и после \n
 
Я бы делал стиль "Сноска" для каждого условия.
Третье условие сработает и после \p и после \n

В итоге я так и сделала, разбила на три запроса. Только третий запрос все же оставила (?<=^)\d(?=\u). На случай, если в начале строки попадется сокращение от порядкового числительного, например 1st или 2nd