В настоящее время я использую TextWrangler (mac) с помощью grep find/replace, но так же счастлив использовать любые другие инструменты редактора или командной строки.Найти несколько подшаблонов и заменить их с помощью обратной копии на несколько строк с помощью textwrangler grep
У меня есть текстовый файл со структурой, как это (да, есть пробел в начале каждой строки):
Reference 1 - This is a sentence with a period. And this exclaims! So does this one!
Reference 2 - This questions? And this, this one responds. But this YELLS!
И мне нужно, чтобы сохранить ссылку, но разбить каждое предложение в его собственная линия, как это:
Reference 1 - This is a sentence with a period.
Reference 1 - And this exclaims!
Reference 1 - So does this one!
Reference 2 - This questions?
Reference 2 - And this, this one responds.
Reference 2 - But this YELLS!
я могу получить его, чтобы сохранить ссылку и последнего предложения с этим (скопированным/заменить символ новой строки там, поэтому перерыв в конце - в противном случае это соответствовало остальной части документа т):
^([^-]+ -\s+)(?:([^.!?]+?[.!?]))(([^.!?]+?[.!?])+?)$
ЗАМЕНИТЬ как это:
\1\2
\1\3
И результаты выглядят следующим образом:
Reference 1 - This is a sentence.
Reference 1 - And this exclaims! So does this one!
Reference 2 - This questions?
Reference 2 - And this, this one responds. But this YELLS!
Если я бегу несколько раз, это не всегда отдельный два других предложения в новые строки. Но если добавить еще одну строку в замене:
\1\4
Тогда я получаю это в результате:
Reference 1 - This is a sentence.
Reference 1 - And this exclaims! So does this one!
Reference 1 - So does this one!
Reference 2 - This questions?
Reference 2 - And this, this one responds. But this YELLS!
Reference 2 - But this YELLS!
Моя надежда состоит в том, что это довольно просто, и я просто отсутствует переключатель/модификатор /и т.д.
Если я могу сделать только одно предложение за раз, я не против делать другие прогоны очистки.
Любые идеи?
После попытки я получил точно то же самое. GREP TextWrangler поддерживает не-жадное сопоставление, поэтому вы можете использовать '(. +? [.!?])', Но, похоже, он достиг того же результата. – usr2564301
Идеальное решение! Благодаря!!! Извините, что не вернусь раньше. –