Difference between revisions of "Writer.Поиск и замена: Часто задаваемые вопросы"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Как составлять регулярные выражения?)
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{Ru Writer}}
 
{{Ru Writer}}
 +
''Все вопросы по поиску и замене символов через диалог Правка - Найти и заменить, а также вопросы автоматической замены и автодополнения слов.''
 +
 +
===Как удалить мягкие переносы?===
 +
Чтобы удалить все мягкие переносы, выделите какой-нибудь один мягкий перенос, нажмите Ctrl F, и нажмите "заменить всё" (поле для замены оставьте пустым).
 +
<p align=right>3.1</p>
 +
 +
=== Как заменить начертание шрифта в выделенном фрагменте, чтобы все символы одного шрифта стали другого цвета? ===
 +
Диалог "Найти и заменить", использовать кнопку "Формат" и регулярное выражение.
 +
[[Image:Replacefontscolor.png]]
 +
<p align=right>2.4</p>
 +
===Как пробелы в числах заменить на неразрывные пробелы?===
 +
В тексте разряды в числах разделяются пробелами. Для замены всех пробелов в числах на неразрывный пробел нужно воспользоваться заменой с регулярными выражениями.
 +
*Для этого в диалоге "Найти и заменить" нужно нажать кнопку "Больше параметров" и установить флажок "регулярные выражения". Затем
 +
* - в строке '''поиска''' ввести '''([:digit:]) ([:digit:]{3})'''
 +
* - в строке '''замены''' ввести '''$1 $2'''
 +
 +
Примечание: В данном диалоге нельзя непосредственно ввести символ "неразрывный пробел". Но его можно предварительно ввести в документ, вырезать в документе и вставить в нужном месте в строке поиска или замены. Таким образом в строке '''$1 $2''' на самом деле не пробел, а именно "неразрывный пробел".
 +
<p align=right>3.0</p>
 +
 
===Как найти символы абзаца, разрыва строки, табуляции? ===
 
===Как найти символы абзаца, разрыва строки, табуляции? ===
:Для поиска таких символов необходимо использовать регулярные выражения. В диалоге поиска и замены регулярные выражения включаются через "Дополнительные настройки".
+
Для поиска таких символов необходимо использовать регулярные выражения. В диалоге поиска и замены регулярные выражения включаются через "Дополнительные настройки".
:Используйте для поиска следующие регулярные выражения:
+
:*символ разрыва строки - "'''\n'''", однако при использовании в поле замены это выражение будет обозначать символ абзаца;
+
:*символ абзаца - "'''$'''";
+
:*символ табуляции - "'''\t'''".
+
  
:Подробнее см.: система помощи, закладка "Индекс", искомое выражение -- "регулярные выражения;список".
+
Используйте для поиска следующие регулярные выражения:
см. также [http://myooo.ru/content/view/39/43/ AltSearch - замечательный диалог поиска и замены]
+
* символ разрыва строки - "'''\n'''", однако при использовании в поле замены это выражение будет обозначать символ абзаца;
 +
* символ абзаца - "'''$'''";
 +
* символ табуляции - "'''\t'''".
 +
 
 +
Подробнее см.: система помощи, закладка "Индекс", искомое выражение -- "регулярные выражения;список".
 +
{{Tip|См. также [http://myooo.ru/content/view/39/43/ AltSearch - замечательный диалог поиска и замены]}}
  
 
<p align=right>2.4</p>
 
<p align=right>2.4</p>
 +
 +
===Как заменить символы разрыва строки на символы абзаца? ===
 +
[[Image:Oo_find_s_03.png|thumb|left|Последовательность действий при поиске и замене символов разрыва строк]]
 +
 +
Как сказано выше для поиска таких символов используются регулярные выражения (взведите флаг ''' "Регулярное выражение" ''').
 +
 +
Часто возникает задача заменить в тексте, например взятом из окна браузера, символы "'''\n'''" на символы абзаца для более корректного форматирования текста.
 +
 +
Попытка поставить в качестве замены символ  "'''$'''" (конец абзаца) ни к чему хорошему, кроме вставки собственно символа "'''$'''", не приводит !
 +
 +
Как оказалось диалог поиска находит эти символы "'''\n'''", но и в качестве замены, в нашем случае, тоже надо указывать "'''\n'''" !!
 +
 +
<br clear="both" />
 +
 +
<p align=right>3.2</p>
 +
 
===Как составлять регулярные выражения?===
 
===Как составлять регулярные выражения?===
: Общие принципы написания регулярных выражений описаны в этой статье: http://ru.wikipedia.org/wiki/Регулярные_выражения
+
Общие принципы написания регулярных выражений описаны в этой статье: http://ru.wikipedia.org/wiki/Регулярные_выражения
: В ООо реализована поддержка регулярных выражений в поиске и замене. Для их использования ознакомьтесь со [[Список регулярных выражений|
+
 
Списком регулярных выражений]].
+
В ООо реализована поддержка регулярных выражений в поиске и замене. Для их использования ознакомьтесь со [[Список регулярных выражений|Списком регулярных выражений]].
  
 
<p align=right>2.4</p>
 
<p align=right>2.4</p>
  
 
===Как преобразовать тексты, набранные в старых текстовых (DOS), где в конце каждой строки стоят Enter'ы===
 
===Как преобразовать тексты, набранные в старых текстовых (DOS), где в конце каждой строки стоят Enter'ы===
:Такие тексты характерны тем, что разделителями "абзацев" являются пустые абзацы.
+
Такие тексты характерны тем, что разделителями "абзацев" являются пустые абзацы.
:#В этом случае нужно найти эти "истинные" разделители абзацев. Для этого регулярными выражениями заменить "символ абзаца в начале строки" на не встречающуюся в данном документе последовательность символов. Например "QWERTYTREWQ". Производится поиск "символа абзаца в начале строки". Регулярное выражение для этого (строка Найти): '''^$''' В строке Заменить вводим '''QWERTYTREWQ'''
+
:#Далее - заменяем все символы абзаца на пробел. Т.е. в случае с "¶" - искать надо '$'. Регулярное выражение для этого (строка Найти): '''$''' В строке Заменить просто нажимаем ПРОБЕЛ.
+
:#Далее - делаем обратную замену "QWERTYTREWQ" на символ абзаца. Регулярное выражение для этого (строка Найти): '''QWERTYTREWQ''' В строке Заменить вводим '''\n'''
+
  
:Если же переносы строк в абзацах отформатированы "мягким переводом строки" (Shift-Enter), то второй шаг немного меняется. В этом случае регулярное выражение в строке Найти будет '''\n''' В строке Заменить так же просто нажимаем ПРОБЕЛ.
+
# В этом случае нужно найти эти "истинные" разделители абзацев. Для этого регулярными выражениями заменить "символ абзаца в начале строки" на не встречающуюся в данном документе последовательность символов. Например "QWERTYTREWQ". Производится поиск "символа абзаца в начале строки". Регулярное выражение для этого (строка Найти): '''^$''' В строке Заменить вводим '''QWERTYTREWQ'''
 +
# Далее - заменяем все символы абзаца на пробел. Т.е. в случае с "¶" - искать надо '$'. Регулярное выражение для этого (строка Найти): '''$''' В строке Заменить просто нажимаем ПРОБЕЛ.
 +
# Далее - делаем обратную замену "QWERTYTREWQ" на символ абзаца. Регулярное выражение для этого (строка Найти): '''QWERTYTREWQ''' В строке Заменить вводим '''\n'''
 +
 
 +
Если же переносы строк в абзацах отформатированы "мягким переводом строки" (Shift-Enter), то второй шаг немного меняется. В этом случае регулярное выражение в строке Найти будет '''\n''' В строке Заменить так же просто нажимаем ПРОБЕЛ.
  
 
<p align=right>2.4</p>
 
<p align=right>2.4</p>
Line 30: Line 67:
 
===Как узнать количество символов в документе без пробелов? ===
 
===Как узнать количество символов в документе без пробелов? ===
 
[[Image:Writer-Counted Blanks.gif|thumb|left|Последовательность действий для подсчета непробельных символов]]
 
[[Image:Writer-Counted Blanks.gif|thumb|left|Последовательность действий для подсчета непробельных символов]]
:Для подсчета слов и символов в документе используется команда '''Сервис - Количество слов''' (выводятся данные по выделенному фрагменту (фрагментам) и по всему документу).
+
Для подсчёта слов и символов в документе используется команда {{Ru_Menu|Сервис|Количество слов}}(выводятся данные по выделенному фрагменту (фрагментам) и по всему документу).
:Используйте для поиска регулярное выражение "'''[:space:]*'''" (любое количество идущих подряд пробелов) и кнопку "'''Найти все'''".
+
Используйте для поиска регулярное выражение "'''[:space:]*'''" (любое количество идущих подряд пробелов) и кнопку "'''Найти все'''".
:Искомое количество непробельных символов получите в результате вычитания двух значений.
+
Искомое количество непробельных символов получите в результате вычитания двух значений.
 
<br clear="both" />
 
<br clear="both" />
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
  
 
===Как найти/заменить двойной пустой абзац? Я уже знаю про регулярные выражения, но всё равно не получается===
 
===Как найти/заменить двойной пустой абзац? Я уже знаю про регулярные выражения, но всё равно не получается===
:Выдержка из помощи по регулярным выражениям: "'''''Осуществлять поиск регулярных выражений можно только в пределах одного абзаца. То есть, поиск одного выражения в одном абзаце, а в следующем абзаце — другого выражения невозможен.'''''"
+
Выдержка из помощи по регулярным выражениям: "'''''Осуществлять поиск регулярных выражений можно только в пределах одного абзаца. То есть, поиск одного выражения в одном абзаце, а в следующем абзаце — другого выражения невозможен.'''''"
  
:Но решение есть:
+
Но решение есть:
:*можно использовать промежуточные подстановки. Например: заменить сначала все ^$ на "ABZ", а потом искать/обрабатывать "ABZABZ".  
+
* можно использовать промежуточные подстановки. Например: заменить сначала все ^$ на "ABZ", а потом искать/обрабатывать "ABZABZ".  
Внимание! Весь документ окажется в одном параграфе, а у OpenOffice.org существует ограничение на величину параграфа,  
+
{{Note|Внимание! Весь документ окажется в одном параграфе, а у OpenOffice.org существует ограничение на величину параграфа, не применяйте такой метод к объемным документам.}}
не применяйте такой метод к объемным документам.
+
* можно воспользоваться макросом из книги "Useful Macro Information For OpenOffice By Andrew Pitonyak"
 
+
:*можно воспользоваться макросом из книги "Useful Macro Information For OpenOffice By Andrew Pitonyak" или "модифицированной" версией этого макроса, опубликованным здесь: http://community.i-rs.ru/index.php/topic,2797.msg30469.html#msg30469
+
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
 
{{RuРазделыFAQ}}
 
{{RuРазделыFAQ}}
 
===Пишу диалог, с новой строки после табуляции ставлю "--"(длинное тире), дописываю абзац, жму ентер - выскакивает меню маркированного списка. Как отключить?===
 
===Пишу диалог, с новой строки после табуляции ставлю "--"(длинное тире), дописываю абзац, жму ентер - выскакивает меню маркированного списка. Как отключить?===
:'''Сервис - Автозамена - Параметры'''
+
{{Ru_Menu|Сервис|Автозамена|Параметры}}
:или использовать CTRL+Z
+
 
 +
или использовать CTRL+Z
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
  
 
===Автозамена подставляет длинное тире вместо среднего.===
 
===Автозамена подставляет длинное тире вместо среднего.===
:Если в свойствах абзаца стоит русский или украинский языки, то минус заменится на длинное тире (em dash), по правилам типографики. В остальных языках используется среднее тире (en dash)
+
Если в свойствах абзаца стоит русский или украинский языки, то минус заменится на длинное тире (em dash), по правилам типографики. В остальных языках используется среднее тире (en dash)
:Отменить автозамену можно, используя CTRL+Z
+
 
 +
Отменить автозамену можно, используя CTRL+Z
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
  
 
===Если в MS Word на выделенном слове зайти в контекстное меню, то там есть пункт "Синонимы". Есть ли что-нибудь подобное в ОО?===
 
===Если в MS Word на выделенном слове зайти в контекстное меню, то там есть пункт "Синонимы". Есть ли что-нибудь подобное в ОО?===
:Выберите команды Сервис - Язык - Тезаурус
+
Выберите команду {{Ru_Menu|Сервис|Язык|Тезаурус}}
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
Line 67: Line 104:
  
 
===Как менять варианты, предлагаемые функцией [[Глоссарий#Автодополнение | автодополнения]]? ===
 
===Как менять варианты, предлагаемые функцией [[Глоссарий#Автодополнение | автодополнения]]? ===
:Если в списке слов для автодополнения есть более одного варианта, нажмите клавиши CTRL+TAB для прокрутки доступных слов. Для прокрутки в обратном направлении используйте клавиши CTRL+SHIFT+TAB.
+
Если в списке слов для автодополнения есть более одного варианта, нажмите клавиши CTRL+TAB для прокрутки доступных слов. Для прокрутки в обратном направлении используйте клавиши CTRL+SHIFT+TAB.  
:Посмотреть список вариантов можно через Сервис - Автозамена - Дополнение слов.
+
  
Пользователям Linux (KDE) необходимо учитывать, что данные сочетания клавиш
+
Посмотреть список вариантов можно через {{Ru_Menu|Сервис|Автозамена|Дополнение слов.}}
зарезервированы KDE для переключения между рабочими столами
+
--[[User:Helen russian|Helen]] 17:09, 27 September 2007 (CEST)
+
  
 +
{{Note|Пользователям Linux (KDE) необходимо учитывать, что данные сочетания клавиш
 +
зарезервированы KDE для переключения между рабочими столами
 +
--[[User:Helen russian|Helen]] 17:09, 27 September 2007 (CEST)}}
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
Line 79: Line 116:
  
 
===Существует ли альтернативный способ поиска и замены для Writer?===
 
===Существует ли альтернативный способ поиска и замены для Writer?===
:Да.
+
Да.
:Расширение от Tomas Bilek для Writer ''Alternative dialog Find & Replace for Writer''
+
 
http://extensions.services.openoffice.org/project/AltSearch
+
Расширение от Tomas Bilek [http://extensions.services.openoffice.org/project/AltSearch Alternative dialog Find & Replace for Writer]
:По сравнению с оригинальным диалогом поиска и замены добавлены:
+
 
 +
Доступна [http://myooo.ru/content/view/39/43/ русская версия расширения]
 +
 
 +
По сравнению с оригинальным диалогом поиска и замены добавлены:
 
* Быстрый выбор шаблонов регулярных выражений
 
* Быстрый выбор шаблонов регулярных выражений
 
* Возможность пакетной работы
 
* Возможность пакетной работы
 
* Возможность менять стили в изменяемом тексте
 
* Возможность менять стили в изменяемом тексте
* Быстрый подсчет числа повторений строки поиска в обрабатываемом тексте
+
* Быстрый подсчёт числа повторений строки поиска в обрабатываемом тексте
 
* ...
 
* ...
 
    
 
    
 
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>
  
 
===Как можно просмотреть список слов в тексте, которые не прошли проверку правописания?===
 
===Как можно просмотреть список слов в тексте, которые не прошли проверку правописания?===
:Это можно сделать с помощью расширения Linguist, написанном на Python.
+
Это можно сделать с помощью расширения  [http://extensions.services.openoffice.org/project/Linguist Linguist], написанном на  Python.
http://extensions.services.openoffice.org/project/Linguist
+
  
:Расширение позволяет:
+
Расширение позволяет:
*Составить список слов, не прошедших проверку орфографии
+
* Составить список слов, не прошедших проверку орфографии
*Составить список слов, присутствующих в тексте
+
* Составить список слов, присутствующих в тексте
*Подсчитать количество слов и прочую статистическую информацию о тексте  
+
* Подсчитать количество слов и прочую статистическую информацию о тексте  
  
 
<p align=right>2.3</p>
 
<p align=right>2.3</p>

Latest revision as of 10:14, 16 July 2018

OOw.png Вопросы по ООо Writer
Графика
Импорт, внешние ссылки и связи
Интерфейс пользователя
Набор и форматирование
Поиск и замена
Сохранение и печать
Стили и шаблоны
Страницы, оглавление и сноски
Таблицы
Другие вопросы

Все вопросы по поиску и замене символов через диалог Правка - Найти и заменить, а также вопросы автоматической замены и автодополнения слов.

Contents

Как удалить мягкие переносы?

Чтобы удалить все мягкие переносы, выделите какой-нибудь один мягкий перенос, нажмите Ctrl F, и нажмите "заменить всё" (поле для замены оставьте пустым).

3.1

Как заменить начертание шрифта в выделенном фрагменте, чтобы все символы одного шрифта стали другого цвета?

Диалог "Найти и заменить", использовать кнопку "Формат" и регулярное выражение. Replacefontscolor.png

2.4

Как пробелы в числах заменить на неразрывные пробелы?

В тексте разряды в числах разделяются пробелами. Для замены всех пробелов в числах на неразрывный пробел нужно воспользоваться заменой с регулярными выражениями.

  • Для этого в диалоге "Найти и заменить" нужно нажать кнопку "Больше параметров" и установить флажок "регулярные выражения". Затем
  • - в строке поиска ввести ([:digit:]) ([:digit:]{3})
  • - в строке замены ввести $1 $2

Примечание: В данном диалоге нельзя непосредственно ввести символ "неразрывный пробел". Но его можно предварительно ввести в документ, вырезать в документе и вставить в нужном месте в строке поиска или замены. Таким образом в строке $1 $2 на самом деле не пробел, а именно "неразрывный пробел".

3.0

Как найти символы абзаца, разрыва строки, табуляции?

Для поиска таких символов необходимо использовать регулярные выражения. В диалоге поиска и замены регулярные выражения включаются через "Дополнительные настройки".

Используйте для поиска следующие регулярные выражения:

  • символ разрыва строки - "\n", однако при использовании в поле замены это выражение будет обозначать символ абзаца;
  • символ абзаца - "$";
  • символ табуляции - "\t".

Подробнее см.: система помощи, закладка "Индекс", искомое выражение -- "регулярные выражения;список".


2.4

Как заменить символы разрыва строки на символы абзаца?

Последовательность действий при поиске и замене символов разрыва строк

Как сказано выше для поиска таких символов используются регулярные выражения (взведите флаг "Регулярное выражение" ).

Часто возникает задача заменить в тексте, например взятом из окна браузера, символы "\n" на символы абзаца для более корректного форматирования текста.

Попытка поставить в качестве замены символ "$" (конец абзаца) ни к чему хорошему, кроме вставки собственно символа "$", не приводит !

Как оказалось диалог поиска находит эти символы "\n", но и в качестве замены, в нашем случае, тоже надо указывать "\n" !!


3.2

Как составлять регулярные выражения?

Общие принципы написания регулярных выражений описаны в этой статье: http://ru.wikipedia.org/wiki/Регулярные_выражения

В ООо реализована поддержка регулярных выражений в поиске и замене. Для их использования ознакомьтесь со Списком регулярных выражений.

2.4

Как преобразовать тексты, набранные в старых текстовых (DOS), где в конце каждой строки стоят Enter'ы

Такие тексты характерны тем, что разделителями "абзацев" являются пустые абзацы.

  1. В этом случае нужно найти эти "истинные" разделители абзацев. Для этого регулярными выражениями заменить "символ абзаца в начале строки" на не встречающуюся в данном документе последовательность символов. Например "QWERTYTREWQ". Производится поиск "символа абзаца в начале строки". Регулярное выражение для этого (строка Найти): ^$ В строке Заменить вводим QWERTYTREWQ
  2. Далее - заменяем все символы абзаца на пробел. Т.е. в случае с "¶" - искать надо '$'. Регулярное выражение для этого (строка Найти): $ В строке Заменить просто нажимаем ПРОБЕЛ.
  3. Далее - делаем обратную замену "QWERTYTREWQ" на символ абзаца. Регулярное выражение для этого (строка Найти): QWERTYTREWQ В строке Заменить вводим \n

Если же переносы строк в абзацах отформатированы "мягким переводом строки" (Shift-Enter), то второй шаг немного меняется. В этом случае регулярное выражение в строке Найти будет \n В строке Заменить так же просто нажимаем ПРОБЕЛ.

2.4

Как узнать количество символов в документе без пробелов?

Последовательность действий для подсчета непробельных символов

Для подсчёта слов и символов в документе используется команда Сервис - Количество слов   (выводятся данные по выделенному фрагменту (фрагментам) и по всему документу). Используйте для поиска регулярное выражение "[:space:]*" (любое количество идущих подряд пробелов) и кнопку "Найти все". Искомое количество непробельных символов получите в результате вычитания двух значений.

2.3

Как найти/заменить двойной пустой абзац? Я уже знаю про регулярные выражения, но всё равно не получается

Выдержка из помощи по регулярным выражениям: "Осуществлять поиск регулярных выражений можно только в пределах одного абзаца. То есть, поиск одного выражения в одном абзаце, а в следующем абзаце — другого выражения невозможен."

Но решение есть:

  • можно использовать промежуточные подстановки. Например: заменить сначала все ^$ на "ABZ", а потом искать/обрабатывать "ABZABZ".
Documentation note.png Внимание! Весь документ окажется в одном параграфе, а у OpenOffice.org существует ограничение на величину параграфа, не применяйте такой метод к объемным документам.
  • можно воспользоваться макросом из книги "Useful Macro Information For OpenOffice By Andrew Pitonyak"

2.3

Принять участие в проекте!
Общие вопросы
Форматирование ответов
Вопросы использования
Популярные разделы:
Writer: Часто задаваемые вопросы
Calc: Часто задаваемые вопросы
Орфография и грамматика
Полезности и секреты
Главная страница

Пишу диалог, с новой строки после табуляции ставлю "--"(длинное тире), дописываю абзац, жму ентер - выскакивает меню маркированного списка. Как отключить?

Сервис - Автозамена - Параметры   

или использовать CTRL+Z

2.3

Автозамена подставляет длинное тире вместо среднего.

Если в свойствах абзаца стоит русский или украинский языки, то минус заменится на длинное тире (em dash), по правилам типографики. В остальных языках используется среднее тире (en dash)

Отменить автозамену можно, используя CTRL+Z

2.3

Если в MS Word на выделенном слове зайти в контекстное меню, то там есть пункт "Синонимы". Есть ли что-нибудь подобное в ОО?

Выберите команду Сервис - Язык - Тезаурус   

2.3


Как менять варианты, предлагаемые функцией автодополнения?

Если в списке слов для автодополнения есть более одного варианта, нажмите клавиши CTRL+TAB для прокрутки доступных слов. Для прокрутки в обратном направлении используйте клавиши CTRL+SHIFT+TAB.

Посмотреть список вариантов можно через Сервис - Автозамена - Дополнение слов.   

Documentation note.png Пользователям Linux (KDE) необходимо учитывать, что данные сочетания клавиш

зарезервированы KDE для переключения между рабочими столами --Helen 17:09, 27 September 2007 (CEST)

2.3


Существует ли альтернативный способ поиска и замены для Writer?

Да.

Расширение от Tomas Bilek Alternative dialog Find & Replace for Writer

Доступна русская версия расширения

По сравнению с оригинальным диалогом поиска и замены добавлены:

  • Быстрый выбор шаблонов регулярных выражений
  • Возможность пакетной работы
  • Возможность менять стили в изменяемом тексте
  • Быстрый подсчёт числа повторений строки поиска в обрабатываемом тексте
  • ...

2.3

Как можно просмотреть список слов в тексте, которые не прошли проверку правописания?

Это можно сделать с помощью расширения Linguist, написанном на Python.

Расширение позволяет:

  • Составить список слов, не прошедших проверку орфографии
  • Составить список слов, присутствующих в тексте
  • Подсчитать количество слов и прочую статистическую информацию о тексте

2.3



Перейти к разделу: Writer | Calc | Общее | UI | Глоссарий | Принятые сокращения | Полезности | Содержание
Personal tools