Я нашел в Интернете и здесь пару сообщений о том, как удалить все слова в абзаце (или весь текст), кроме первой буквы, с помощью регулярных выражений и Microsoft Word, но в LibreOffice Writer ничего не помогло.
Я пытался использовать диалоговое окно «Найти и заменить» и проверить регулярные выражения в параметрах.
В качестве примера:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua.
Стало бы:
L i d s a, ca e, s d e t i u l e d ma.
Было бы здорово сохранить пунктуацию и чувствительность к регистру. Я также не против использования для этого другого метода/программы.
@CarySwoveland кажется, что собственная находка @mordock даже лучше: \B[a-z]+
или \B\w+
будет 75 шагов или 76 шагов (не знаю, в чем разница)
Используйте функцию «Найти и заменить» и установите флажок regex
(Regular expressions
).
Искать: \b(\w)\w+
,
заменить на: $1
\b
— это привязка границы слова, которая гарантирует, что совпадение начинается с начала слова.(\w)
захватывает первую букву слова и помещает ее в первую группу\w+
соответствует остальной части слова, которая будет заменена.$1
в поле замены вставляет первую захваченную группу (в нашем случае первую букву).Это решение работает для первого слова абзаца, но, к сожалению, не позволяет изменить какие-либо слова после него, если только это не новый абзац.
Странный. В моем случае работает. Но тогда ты мог бы попробовать (\b\w)\w*
.
Предполагая, что регулярные выражения LibreOffice поддерживают просмотры фиксированной ширины, вы можете сопоставить их по следующему шаблону:
(?<=\w)\w
а затем замените пустой строкой. Этот шаблон будет соответствовать любому символу слова, за исключением тех, которым не предшествуют символы слова (например, в начале слова).
Вот работающая демо.p
Редактировать:
Как предложено в комментариях, мы можем оптимизировать шаблон, чтобы:
(?<=\w)\w+
Это позволит сопоставить целые подслова за один раз, уменьшив количество шагов замены.
libreoffice поддерживает это. (?<=\w)\w+
может быть более эффективным.
Да, это сработало. Есть пара проблем с форматированием чисел и тому подобного, но у меня нет проблем с их исправлением вручную. Кроме того, \B[a-z]
, похоже, дает те же результаты, о которых я только что узнал и собирался обновить свой вопрос этой информацией. Спасибо!
В дополнение к предложению @jhnc для тестовой строки видно, что замена \w
на \w+
уменьшает количество совпадений с 83 до 19 и количество шагов с 452 до 132.
Решения Flash и Тима работают, но хотя мне нравятся регулярные выражения, которые заменяют совпадения пустыми строками (ответ Тима), решение Flash кажется более эффективным: 114 шагов против 452 для тестовой строки.