Я нашел в Интернете и здесь пару сообщений о том, как удалить все слова в абзаце (или весь текст), кроме первой буквы, с помощью регулярных выражений и 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 для тестовой строки.