<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
 <!ENTITY % Russian "INCLUDE">
 <!ENTITY % addindex "IGNORE">
]>

<book lang="&language;">

  <bookinfo>
    <title
>Редактор регулярных выражений</title>

    <authorgroup>
      <author
><firstname
>Jesper K.</firstname
> <surname
>Pedersen</surname
> <affiliation
><address
><email
>blackie@kde.org</email
></address
></affiliation>
      </author>
    </authorgroup>

    <date
>2001-07-03</date>
    <releaseinfo
>0.1</releaseinfo>

    <legalnotice
>&underFDL;</legalnotice>

    <copyright>
      <year
>2001</year>
      <holder
>Jesper K. Pedersen</holder>
    </copyright>

    <abstract>
      <para
>Это руководство знакомит вас со встроенным редактором регулярных выражений.</para>
    </abstract>

    <keywordset>
      <keyword
>KDE</keyword>
      <keyword
>регулярное выражение</keyword>
    </keywordset>
  </bookinfo>

  <!-- ====================================================================== -->
  <!--                               Introduction                             -->
  <!-- ====================================================================== -->
  <chapter id="introduction">
    <title
>Введение</title>


    <para
>Редактор регулярных выражений предназначен для редактирования регулярных выражений в графическом виде (в отличие от текстовых строк). Традиционно, регулярные выражения имеют ASCII синтаксис, к примеру: <literal
>^.*kde\b</literal
>. Основными недостатками данного стиля являются: <itemizedlist>
        <listitem
><para
>Трудности в адекватном восприятии для людей, не занимающихся программированием.</para
></listitem>

        <listitem
><para
>Требуется, чтобы вы избегали определённых символов (чтобы использовать символ звёздочки, например, вам придётся набрать <literal
>\*</literal
>). </para
></listitem>

        <listitem
><para
>Требуется, чтобы вы постоянно помнили и соблюдали правила приоритетов выполнения (Что делает операция <literal
>x|y*</literal
>? Значение <literal
>x</literal
> или множество <literal
>y</literal
>, <emphasis
>ИЛИ</emphasis
> множества <literal
>x</literal
> и <literal
>y</literal
> смешаны?)</para
></listitem>
      </itemizedlist>
    </para>

    <para
>Редактор регулярных выражений позволяет вам создавать однозначно воспринимаемые регулярные выражения. Он позволяет решить проблемы, изложенные в пунктах два и три выше. Делает ли редактор доступным использование регулярных выражений для широкой общественности - покажет практика. Если вы не программист, который мастерски манипулирует всей мощью регулярных выражений - пожалуйста, <ulink url="mailto:blackie@kde.org"
>сообщите нам своё мнение</ulink
>. </para>

  </chapter>

  <!-- ====================================================================== -->
  <!--                       What is a Regular Expression                     -->
  <!-- ====================================================================== -->
  <chapter id="whatIsARegExp">
    <title
>Что такое регулярные выражения?</title>

    <para
>Регулярные выражения являются способом для определения <emphasis
>условий</emphasis
>, которыми мы обычно мысленно описываем ситуацию. Обычно, в текстовом редакторе, для поиска вы используете какие-то конкретные <emphasis
>фразы.</emphasis
>, использование регулярных выражений позволяет описать: на что должно быть похожим искомое. К примеру, <emphasis
>Я ищу слово KDE стоящее в начале строки</emphasis
>, или <emphasis
>Я ищу слово <literal
>the</literal
>, находящееся на месте</emphasis
>, или <emphasis
>Я ищу файлы, начинающиеся со слова <literal
>test</literal
> и последующих цифр, к примеру <literal
>test12</literal
>, <literal
>test107</literal
> и <literal
>test007</literal
></emphasis
></para
> 

    <para
>Вы можете строить регулярные выражения, используя более мелкие регулярные выражения, подобно тому как строятся большие дома из маленьких кирпичей. Так как в строительстве существует множество материалов, то далее мы постараемся на примерах рассказать вам об основных кирпичах, тем самым заложив фундамент для построения регулярных выражений.</para>

    <example>
      <title
>Поиск обычного текста</title>
      <para
>Оговоримся сразу, что регулярные выражения не являются наилучшим способом поиска строк в тексте. Причина кроется в том, что в регулярных выражениях некоторым символам присвоены специальные значения. Среди них следующие: <literal
>.*|$</literal
>. Таким образом, если вы хотите найти в тексте <literal
>kde.</literal
> (то есть слово <literal
>kde</literal
> с точкой), то вам придётся набрать  <literal
>kde\.</literal
> <footnote
><para
>Редактор регулярных выражений выполнит все необходимые формальности за вас</para
></footnote
>, записав <literal
>\.</literal
> вместо <literal
>.</literal
>, т.е. вставив <emphasis
>управляющую последовательность</emphasis
> (escape sequence) вместо символа. </para>
    </example>

    <example id="positionregexp">
      <title
>Поиск URL</title>
      <para
>Когда вы выбираете нечто похожее на URL в KDE, то программа <command
>klipper</command
> предложить вам открыть этот URL при помощи <command
>konqueror</command
>.</para>

      <para
><command
>Klipper</command
> осуществляет свой выбор, руководствуясь результатами сопоставления нескольких регулярных выражений, и когда одно из регулярных выражений выдаст положительный результат, тогда и будет предложен адекватный вариант.</para>
      
      <para
>Регулярное выражение для URL содержит (кроме всего прочего) условие, что текст должен начинаться с <literal
>http://</literal
>. С помощью регулярного выражения это условие можно описать следующим образом: <literal
>http://</literal
> со шляпой (с символом <literal
>^</literal
>).</para>

      <para
>Предыдущий пример показывает, как с помощью регулярных выражений можно осуществлять указание на расположение искомого в тексте (сопоставление позиции). Аналогично можно указать на то, что искомое находится <emphasis
>в конце строки </emphasis
>, для этого используется символ <literal
>$</literal
> (символ доллара - зелёных американских денег).</para>
    </example>

    <example id="boundaryregexp">
      <title
>Поиск слова <literal
>the</literal
>, но не <emphasis
>the</emphasis
><literal
>re</literal
>, <literal
>brea</literal
><emphasis
>the</emphasis
> или <literal
>ano</literal
><emphasis
>the</emphasis
><literal
>r</literal
></title>
      <para
>По образу и подобию вышеизложенного могут быть указаны ещё два дополнительных условия при поиске, а именно: позиция <emphasis
>на границе слова</emphasis
> (в начале, либо конце) и <emphasis
>не на границе слова</emphasis
>. Для обозначения этих условий применяются обозначения <literal
>\b</literal
> (указание на границу слова) и <literal
>\B</literal
> (не на границе слова). <emphasis
></emphasis
></para>

      <para
>Таким образом слово <literal
>the</literal
> можно найти, воспользовавшись регулярным выражением <literal
>\bthe\b</literal
>. Этим мы указываем, что ищем просто слово <literal
>the</literal
> без каких-бы то ни было довесков перед и после слова (т.е с границами по каждой из сторон слова) </para>

      <para
>Все четыре типа указания на расположение, использующиеся в регулярных выражениях, включены в редактор, см. <link linkend="positiontool"
> четыре различных типа расположения</link
></para>
    </example>

    <example id="altnregexp">
      <title
>Поиск всех <literal
>this</literal
> или <literal
>that</literal
></title>
      <para
>Представьте себе, что вы хотите найти в документе слово <literal
>this</literal
> или слово <literal
>that</literal
>. При обычном поиске вам необходимо сделать два прохода: в первый произвести поиск слова <literal
>this</literal
>, во второй <literal
>that</literal
>.</para>

      <para
>Используя регулярные выражения вы можете сделать всё это за один приём. Для этого запишите выражение следующим образом: <literal
>this|that</literal
>, т.е. разделите оба искомых слова вертикальной чертой (обычно, клавиша Shift+правый верхний угол алфавитно - цифровой клавиатуры, рядом с забоем)<footnote
><para
>Примечание: по обе стороны от вертикальной черты могут находиться не только искомые слова, но и два регулярных выражения.</para
></footnote
></para>

      <para
>В редакторе регулярных выражений вы не пишите в ручную вертикальную черту, а выбираете <link linkend="altntool"
> альтернатива</link
>, тем самым добавляя регулярное выражение.</para>
    </example>

    <example id="repeatregexp">
      <title
>Сопоставление чего-либо</title>
      <para
>Регулярные выражения часто сравнивают с шаблоном, использующемся в командном интерпретаторе (оболочке), где можно определить множество файлов используя звёздочку. Вы несомненно узнаете шаблон в следующих примерах: <itemizedlist>
          <listitem
><para
><literal
>rm *~</literal
> - здесь <literal
>*~</literal
> является шаблоном, указывающим на то, что необходимо выбрать (и удалить) все файлы, заканчивающиеся на <literal
>~</literal
></para
></listitem>
          <listitem
><para
><literal
>cat test??.res</literal
> - вывод всех файлов, начинающихся с <literal
>test</literal
>, далее, в названии которых следуют два любых символа, и заканчивающихся на <literal
>.res</literal
> (с расширением <literal
>.res</literal
>).</para
></listitem>
        </itemizedlist>
      </para>

      <para
>В оболочке звёздочка указывает, что любой символ может встретиться в названии любое количество раз, другими словами, звёздочка означает <emphasis
>всё что угодно</emphasis
>. В регулярном выражении подобное условие задаётся при помощи записи  <literal
>.*</literal
>. Точка указывает, что может быть <emphasis
> один</emphasis
> произвольный символ, в свою очередь звёздочка сообщает, что предыдущее регулярное выражение может соответствовать любое количество раз. Вместе они задают условие поиска: любой единичный символ может быть встречен произвольное количество раз.</para>

      <para
>Это может на первый взгляд показаться чрезмерно сложным, но когда вы увидите всю картину работы регулярных выражений,то сможете по достоинству оценить всё их изящество. Позвольте продемонстрировать ещё одно основное выражение: <literal
>a</literal
>. Эта запись указывает, что регулярное выражение ищет соответствие одиночному символу <literal
>a</literal
>. Если объединить эту запись со звёздочкой, т.е. <literal
>a*</literal
>, то получится регулярное выражение допускающее любое количество символов a.</para>

      <para
>Можно объединять несколько регулярных выражений последовательно, например <literal
>ba(na)*</literal
>. Запись <footnote
><para
><literal
>(na)*</literal
> указывает, что строка в скобках может повторяться любое количество раз</para
></footnote
>. Представьте себе, что работая в текстовом редакторе, вы должны найти следующие слова: <literal
>ba</literal
>, <literal
>bana</literal
>, <literal
>banana</literal
>, <literal
>bananananananana</literal
> </para>

      <para
>Как сказано выше, для вас не составляет труда записать шаблон оболочки: <literal
>test??.res</literal
> через регулярное выражение: <literal
>test..\.res</literal
>. Вообще-то точка означает любой символ. Для того чтобы указать что нужна именно точка, вы должны записать <literal
>\.</literal
><footnote
><para
>  Здесь использована управляющая последовательность</para
></footnote
>. Во всех словах регулярное выражение <literal
>\.</literal
> означает точка, а просто точка - соответствие любому символу на данной позиции. </para>

      <para
>В редакторе регулярных выражений повторяющиеся выражения могут быть вставлены с использованием <link linkend="repeattool"
>повторить</link
> </para>
    </example>

    <example id="lookaheadregexp">
      <title
>Замена <literal
>&amp;</literal
> на <literal
>&amp;amb;</literal
> в HTML документе.</title>
      <para
>В HTML документе, для того чтобы отображался специальный символ <literal
>&amp;</literal
>, его необходимо записать как <literal
>&amp;amp;</literal
> - по аналогии с тем, как происходит замена служебных символов на управляющей последовательности в регулярных выражениях.</para>

      <para
>Представьте себе, что вы набрали документ HTML в обычном текстовом редакторе (допустим XEmacs, Kate или Notepad), и полностью забыли про эти правила. Для того чтобы устранить  ошибку необходимо заменить все записи <literal
>&amp;</literal
> на <literal
>&amp;amp;</literal
>.</para>

      <para
>Эта операция может быть достаточно просто реализована с использованием традиционных средств поиска-замены, однако возможны некоторые осложнения. Представьте себе, что что вы периодически вспоминали об этих правилах, т.е. <emphasis
>местами </emphasis
> у вас записано правильно. В этом случае все ошибочные варианты будут заменены на правильные <literal
>&amp;amp;</literal
>, а в тех местах где было записано правильно, возникнет новая ошибка: <literal
>&amp;amp;amp;</literal
></para>

      <para
>На самом деле вы хотите произвести замену записи <literal
>&amp;</literal
>, только в том случае, если за ней <emphasis
>не</emphasis
> стоит <literal
>amp;</literal
>. Для этого вы должны воспользоваться регулярными выражениями использующими <emphasis
>запрещения</emphasis
>. </para>

      <para
>Для того чтобы выполнить условие, при котором за искомым не должно стоять <literal
>amp;</literal
>, необходимо записать следующее выражение: <literal
>&amp;(?!amp;)</literal
>. Гораздо проще всё будет выглядеть в редакторе регулярных выражений, если вы воспользуетесь <link linkend="lookaheadtools"
> инструментами запрета/расширения</link
>.</para>
    </example>

  </chapter>

  <!-- ====================================================================== -->
  <!--                    Using the Regular Expression Editor                 -->
  <!-- ====================================================================== -->
  <chapter id="theEditor">
    <title
>Использование редактора регулярных выражений</title>

    <para
>В этой главе рассказывается о работе непосредственно с редактором регулярных выражений </para>

    <!-- ====================================================================== -->
    <!--                   The organization of the screen                       -->
    <!-- ====================================================================== -->
    <sect1 id="screenorganization">
      <title
>Организация рабочего окна</title>

      <mediaobject>
        <imageobject
><imagedata format="PNG" fileref="theEditor.png"/></imageobject>
      </mediaobject>
      
      <para
>Наиболее важной частью редактора является область редактирования, это область, в который вы рисуете регулярные выражения. Область имеет серый цвет и расположена в центре рабочего окна.</para>

      <para
>Выше области редактирования расположены две панели инструментов. Первая панель содержит <link linkend="editingtools"
>средства редактирования</link
> и очень похожа на инструменты для рисования в графических программах. Вторая панель содержит кнопку <emphasis
>Что это?</emphasis
> и кнопки отмены/повтора.</para>

      <para
></para>

      <para
>Ниже области редактирования находится строка регулярного выражения в текстовом (ASCII) виде. Все изменения, вносимые в графическом редакторе переносятся в текстовую форму. Если вы захотите поправить регулярное выражение в текстовом виде, то все изменения также будут внесены в графическое представление.</para>

      <para
>Наконец, слева относительно области редактирования вы найдёте множество заготовок регулярных выражений. Они служат для достижения двух целей: (1) Когда вы используете редактор, эти выражения являются более <emphasis
>качественными</emphasis
> или, если хотите, более исчерпывающими, заменяя общие регулярные выражения.На рисунке выше вы можете увидеть, как текстовое представление ".*" заменяется на шаблонное "всё что угодно".(2) Вы можете использовать эти заготовки в качестве строительного материала для построения своих регулярных выражений. За более исчерпывающей информацией обратитесь к разделу <link linkend="userdefinedregexps"
>регулярные выражения, определяемые пользователями</link
>, в нём содержится подробная информация о том, как сохранить ваши собственные регулярные выражения.</para
>      
    </sect1>

    <!-- ====================================================================== -->
    <!--                         Editing Tools                                  -->
    <!-- ====================================================================== -->
    <sect1 id="editingtools">
      <title
>Средства редактирования</title>
      <para
>В этой главе предполагается, что вы изучили главу <link linkend="whatIsARegExp"
>что такое регулярные выражения</link
>, и имеете представление, о чём идёт речь.</para>
      
      <para
>Все инструменты расположены на панели инструментов, выше, относительно области редактирования. Далее будет описан каждый из инструментов.</para>
      
      

      <simplesect id="selecttool">
        <title
>Выделение <inlinemediaobject
> <imageobject
><imagedata format="PNG" fileref="select.png"/>
        </imageobject
></inlinemediaobject
></title>

        <para
>Выделение предназначено для обозначения элементов, подлежащих вырезке - вставке или перетаскиванию. Выделение работает также как и в обычных программах для работы с графикой.</para>
      </simplesect>
        
      

      <simplesect id="texttool"
><title
>Текст <inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="text.png"/>
            </imageobject
></inlinemediaobject
></title>

        <para
><inlinemediaobject
><imageobject>
              <imagedata format="PNG" fileref="texttool.png"/>
        </imageobject
></inlinemediaobject
></para>

        <para
>Используя этот инструмент вы можете вставить обычный текст, при этом не заботясь о наличии и необходимости замены специальных символов. Далее в примере будет создано регулярное выражение:  <literal
>abc\*\\\)</literal
></para>
      </simplesect>

      

      <simplesect id="characterstool"
><title
>Символ <inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="characters.png"/>
            </imageobject
></inlinemediaobject
></title>
      
        <para
><inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="charactertool.png"/>
            </imageobject
></inlinemediaobject
></para>
        
        <para
>Используя этот инструмент, вы определяете области значений символьных величин. К примеру, что в тексте содержатся символы <literal
>[0-9]</literal
>, <literal
>[^a-zA-Z,_]</literal
>. Если вы воспользовались данным инструментом, то должен появиться диалог, в котором определяются области значений символьных величин.</para>
        
        <para
>Смотрите также <link linkend="repeatregexp"
>повторение регулярных выражений</link
>.</para>
      </simplesect>

      
      
      <simplesect id="anychartool"
><title
>Любой символ <inlinemediaobject
><imageobject>
              <imagedata format="PNG" fileref="anychar.png"/>
        </imageobject
></inlinemediaobject
></title>
        
        <para
><inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="anychartool.png"/>
        </imageobject
></inlinemediaobject
></para>

        <para
>Регулярное выражение "точка" (.). Точка соответствует любому символу в единичной позиции.</para
> 
        
       
        
        </simplesect>



      <simplesect id="repeattool"
><title
>Повторение <inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="repeat.png"/>
            </imageobject
></inlinemediaobject
></title>

        <para
><inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="repeattool.png"/>
            </imageobject
></inlinemediaobject
></para>

        <para
>Повторяющиеся элементы. Включают в себя звёздочку (*), плюс (+), знак вопроса (?), и области ({3,5}). Если вы используете этот инструмент, то появится диалог, в котором вы должны указать необходимое количество повторов.</para>
          
          <para
>Вы определяете повторяемое рисуя его внутри квадратика, который появляется при использовании данного инструмента.</para>

          <para
>Повторяемые элементы выражения можно взять извне, затем поместить в квадрат. Также вы можете сперва нарисовать то что потом должно будет быть повторено, а затем выбрать инструмент повторения. И наоборот: вы можете сперва вставить повторитель, а затем нарисовать внутри него повторяемое. </para>

        <para
>См. <link linkend="repeatregexp"
>повторяемые регулярные выражения</link
>.</para>
        </simplesect>




      <simplesect id="altntool"
><title
>Варианты <inlinemediaobject
><imageobject>
            <imagedata format="PNG" fileref="altn.png"/>
            </imageobject
></inlinemediaobject
></title>

        <para
><inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="altntool.png"/>
        </imageobject
></inlinemediaobject
></para>
        
        <para
>Задание альтернативы - это использование оператора(|). Вы рисуете другой вариант поверх имеющегося, после того как в редакторе появится новый квадратик для ввода.</para>

        <para
>Смотрите раздел <link linkend="altnregexp"
>альтернативные регулярные выражения</link
></para>
      </simplesect>
      



      <simplesect id="compoundtool"
><title
>Составное регулярное выражение <inlinemediaobject
><imageobject>
              <imagedata format="PNG" fileref="compound.png"/>
        </imageobject
></inlinemediaobject
></title>
        
        <para
><inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="compoundtool.png"/>
        </imageobject
></inlinemediaobject
></para>
        
        <para
>Это не регулярное выражение. Оно позволяет группировать составляющие для того, чтобы вы могли их легко использовать руководствуясь только названиями. Это видно в правой части экрана, приведённого ниже.</para>
      </simplesect>





      <simplesect id="positiontool"
><title
>Начало/конец строки <inlinemediaobject
><imageobject
> <imagedata format="PNG" fileref="begline.png"/> </imageobject
></inlinemediaobject
>&nbsp;&nbsp;  <inlinemediaobject
><imageobject>
              <imagedata format="PNG" fileref="endline.png"/>
        </imageobject
></inlinemediaobject
></title>
        
        <para
><inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="linestartendtool.png"/>
        </imageobject
></inlinemediaobject
></para>

        <para
>Инструменты начала и конца строк указывают на соответствие условиям начала и конца строки. Регулярное выражение, в приведённом выше примере рабочего окна редактора, не содержит символов соответствия начала/конца строк.</para>
        
        <para
>Смотри <link linkend="positionregexp"
>сопоставление позиций в регулярных выражениях</link
>.</para>
      </simplesect>





      <simplesect
><title
>(Не)граница слова <inlinemediaobject
><imageobject
> <imagedata format="PNG" fileref="wordboundary.png"/> </imageobject
></inlinemediaobject
>   <inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="nonwordboundary.png"/>
        </imageobject
></inlinemediaobject
></title>

        <para
><inlinemediaobject
><imageobject
><imagedata format="PNG" fileref="boundarytools.png"/>
        </imageobject
></inlinemediaobject
></para>

        <para
>Инструментальные средства границ позволяют задавать условия соответствие границам или содержимому слова. Регулярное выражение изображённое на картинке показывает соответствие для любых слов, начинающихся с <literal
>the</literal
>. Само слово <literal
>the</literal
> не попадает под это условие.</para>

        <para
>Смотри <link linkend="boundaryregexp"
>границы в регулярных выражениях</link
>.</para>
      </simplesect>





      <simplesect id="lookaheadtools"
><title
>Упреждающий поиск (по отрицанию) <inlinemediaobject
><imageobject
> <imagedata format="PNG" fileref="poslookahead.png"/> </imageobject
></inlinemediaobject
>&nbsp;&nbsp; <inlinemediaobject
><imageobject
> <imagedata format="PNG" fileref="neglookahead.png"/>
        </imageobject
></inlinemediaobject
></title>

        <para
><inlinemediaobject
><imageobject
> <imagedata format="PNG" fileref="lookaheadtools.png"/>
        </imageobject
></inlinemediaobject
></para>

        <para
>Инструментальные средства наложения условий разрешения/блокировки определяют будут ли приняты результаты по конкретному условию. Частное решение, тем не менее, не является частью общего.</para>

        <para
>Примечание: вам разрешается устанавливать блокировки только в конце регулярного выражения. Редактор регулярных выражений не работает с ними.</para>

        <para
>Смотри <link linkend="lookaheadregexp"
>блокировки и разрешения в регулярных выражениях</link
>.</para>
      </simplesect>
    </sect1>

  <!-- ====================================================================== -->
  <!--                  User Defined Regular Expressions                      -->
  <!-- ====================================================================== -->
    <sect1 id="userdefinedregexps">
      <title
>Регулярные выражения, определяемые пользователем</title>
      <para
>Слева от области редактирования расположена зона для регулярных выражений, определяемых пользователем. Несколько регулярных выражений занесено в этот список непосредственно после установки КДЕ, тогда как другие вы можете внести и сохранить самостоятельно.</para
> 

      <para
>Данные регулярные выражения обеспечивают достижение двух целей: (см. <link linkend="screenorganization"
>более подробное описание</link
>), а именно: 1) Обеспечивают вас блоками для строительства регулярных выражений 2) делают регулярные выражения более понятными.</para>

      <para
>Вы можете сохранить ваши собственные регулярные выражения щелчком по правой кнопке мыши в области редактирования, и выбрав пункт <literal
>Сохранить регулярное выражение</literal
> в появившемся меню.</para>

      <para
>Если регулярное выражение сохраняется в составе <link linkend="compoundtool"
>составного</link
>, то оно может участвовать в создании последующих регулярных выражений.</para>

      <para
>Регулярные выражения, определяемые пользователем, могут быть переименованы или удалены щелчком правой кнопки мыши на их названии в списке.</para>
    </sect1>
  </chapter>

  <!-- ====================================================================== -->
  <!--                  Reporting a bug and Suggesting Features               -->
  <!-- ====================================================================== -->
  <chapter id="bugreport">
    <title
>Как сообщить о пожеланиях и замеченных ошибках  </title>
    <para
>Замеченные ошибки и пожелания направляйте в <ulink url="http://bugs.kde.org/"
>система отслеживания ошибок</ulink
>, <emphasis role="strong"
>в обязательном порядке предварительно,</emphasis
> убедитесь в том, что эта или аналогичная ошибки не были зафиксированы: <ulink url="http://bugs.kde.org/db/pa/lkregexpeditor.html"
>сообщения/пожелания </ulink
></para>
  </chapter>

  <!-- ====================================================================== -->
  <!--                                 FAQ                                    -->
  <!-- ====================================================================== -->
  <chapter id="faq">
    <title
>Часто задаваемые Вопросы</title>
    <sect1 id="question1">
      <title
>Поддерживает ли редактор регулярных выражений обратные ссылки?</title>
      <para
>В настоящий момент нет, но планируется к реализации в следующей версии.</para>
    </sect1>

    <sect1 id="question2">
      <title
>Будет ли в редакторе регулярных выражений предусмотрена возможность отображения результатов ?</title>
      <para
>Нет, но будем надеяться, что это будет реализовано в будущем.</para>
    </sect1>

    <sect1 id="question3">
      <title
>Я являюсь автором программы для KDE, как я могу использовать ваш редактор в своём приложении?</title>
      <para
>См. <ulink url="http://developer.kde.org/documentation/library/cvs-api/classref/interfaces/KRegExpEditorInterface.html"
>Документация для класса KRegExpEditorInterface</ulink
></para>
    </sect1>

    <sect1 id="question4">
      <title
>Я не могу найти кнопку <emphasis
>редактировать регулярные выражения</emphasis
>, допустим, в обозревателе, после переустановки KDE 3, почему?</title>
      <para
>Инструментарий для работы с регулярными выражениями содержится в пакете kdeutils. Если вы не установили этот пакет, то кнопка <emphasis
>редактировать регулярные выражения </emphasis
>не появится в соответствующих программах.</para>
    </sect1>
  </chapter>

  <!-- ====================================================================== -->
  <!--                           Credits and Licenses                         -->
  <!-- ====================================================================== -->
  <chapter id="credits-and-license">
    <title
>Лицензия и благодарности</title>

    <para
>Документация (С) 2001, Jesper K. Pedersen <email
>blackie@kde.org</email
> </para
><para
>Перевод (С) 2002 Клютченя А.Л. <email
>asoneofus@kde.ru</email
></para
><para
>Редакция перевода (С) 2004 Н. Шафоростов, <email
>linux@l10n.org.ua</email
>, <ulink url="http://program.net.ua"
>http://program.net.ua</ulink
>. </para>
&underGPL; &underFDL; </chapter>


</book>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
