Заменить символы абзаца (\r) (все, кроме последнего) на принудительный разрыв строки (\n)

Статус
Закрыто для дальнейших ответов.

Eugenyus

Модератор
Топикстартер
12 лет на форуме
Сообщения
1 960
Реакции
3 588
Уважаемые знатоки регулярных выражений. Предлагается следующая задача.
GrepForRekvizit.jpg
В тексте в диапазоне между словами "Мета" и "Обладнання" требуется заменить символы абзаца (\r) (все, кроме последнего) на принудительный разрыв строки (\n). Одной GREP-заменой по всему тексту:
GrepForRekvizit2.jpg
Строку поиска примерно набросал (по крайней мере, находит то, что должно находить):
Код:
(?<=Мета:)((.+)\r)+?(?=.+\r\tОбладнання:)
Осталось придумать строку замены.
В аттаче - индизайновский файл с текстом для экспериментов (если надо).

PS. Напоследок оговорюсь, что задачу решил скриптом, однако интересно, ничего ли я не упустил, и может быть, есть, так сказать, "однострочное" решение?
 

Вложения

  • GrepForRekvizit.rar
    259.5 КБ · Просм.: 287

NNN5

Модератор
15 лет на форуме
Сообщения
1 214
Реакции
972
Ответ: GREP в InDesign. Что и как

Самое простое - сделать в два этапа. Сначала заменить то, что находит ваша строка, на другой цвет. Потом искать \r этого цвета и их менять на \n. Потом цвет убить. Просто, но эффективно.
Но вы, похоже, ставите задачу иначе?
 

Eugenyus

Модератор
Топикстартер
12 лет на форуме
Сообщения
1 960
Реакции
3 588
Ответ: GREP в InDesign. Что и как

Но вы, похоже, ставите задачу иначе?
Вы об этом?:)
Одной GREP-заменой по всему тексту:
Готов принести извинения за это условие, так как оно выглядит как принципиальное, а важнее принципа все же эффективность (в данном случае). А Ваш вариант действительно прост и эффективен. Спасибо:)
 

Йожег

без телевизора
12 лет на форуме
Сообщения
8 526
Реакции
4 241
Ответ: Поиск пустых ячеек в таблице

Как сказать любой символ но не точка? Строки заканчивается энтерами как убрать где не надо?
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 850
Ответ: Поиск пустых ячеек в таблице

"Всё, кроме ..." обозначается знаком ^, т.е. поисковый запрос должен выглядеть так:
Код:
 [^\.]\r
Но в данном случае поиск найдет и символ перед абзацем, а, следовательно, для замены придется вводить группы. Поэтому проще воспользоваться отрицательным просмотром назад:
Код:
(?<!\.)\r
Тогда найдет только знак абзаца.
P.S. Стоит учесть, что, кроме точки, предложение может заканчиваться и другими знаками.
 

Skvoznyak

15 лет на форуме
Сообщения
5 478
Реакции
2 158
Ответ: Поиск пустых ячеек в таблице

а если строка заканчивается точкой, это однозначно конец абзаца?
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 214
Реакции
972
Ответ: Поиск пустых ячеек в таблице

____
 
Статус
Закрыто для дальнейших ответов.