<para>Regulaaravaldiste redaktor on redaktor regulaaravaldiste graafiliseks redigeerimiseks (vastandina <acronym>ASCII</acronym> süntaksile). Traditsiooniliselt kirjutatakse regulaaravaldisi <acronym>ASCII</acronym> süntaksis, mis näeb välja umbes nii: <literal>^.*kde\b</literal>. Selle peamiseks puuduseks on: <itemizedlist>
<listitem><para>Mitteprogrammeerijal on seda raske mõista.</para></listitem>
<listitem><para>See nõuab teatud märkide <emphasis>varjestamist</emphasis> (näiteks tähekese sobivuseks tuleb kirjutada <literal>\*</literal>). </para></listitem>
<listitem><para>See nõuab, et teaksid ja tunneksid <emphasis>eelnemisreegleid</emphasis> (Mida õieti tähendab <literal>x|y*</literal>? Kas ühekordset <literal>x</literal>-i või mitut <literal>y</literal>-t <emphasis>VÕI</emphasis> mitut <literal>x</literal>-i ja <literal>y</literal>-t?)</para></listitem>
<para>Regulaaravaldiste redaktor aga võimaldab regulaaravaldise hõlpsasti <emphasis>joonistada</emphasis>. Redaktor lahendab vähemalt mainitud teise ja kolmanda probleemi. See ei pruugi küll regulaaravaldisi tavakasutajale tingimata arusaadavaks teha, kuigi seda saavad öelda vaid kasutajad ise. Niisiis - kui sa ei ole programmeerija, aga oled tänu käesolevale redaktorile regulaaravaldistega <quote>sina</quote> peale saanud, anna palun sellest <ulink url="mailto:blackie@kde.org">mulle teada</ulink>. </para>
<para>Regulaaravaldis on viis määrata <emphasis>tingimused</emphasis>, mis peavad millekski täidetud olema. Kui näiteks tavaliselt otsitakse tekstiredaktoris mingit sõna või märki/märke, siis saab otsitava teksti määrata <emphasis>sõna-sõnalt</emphasis>, regulaaravaldisena või siis andes ette teatud mustrit, millega otsitav peab sobima. Näiteks <emphasis>otsin sõna KDE, aga ainult rea alguses</emphasis> või <emphasis>otsin sõna <literal>see</literal>, aga see peab olema eraldi sõna</emphasis> või <emphasis>otsin faile, mis algavad sõnaga <literal>test</literal>, millele järgneb mingi number, näiteks <literal>test12</literal>, <literal>test107</literal> ja <literal>test007</literal></emphasis>.</para>
<para>Regulaaravaldisi saab luua alamavaldistest, nagu näiteks suurt Lego saab kokku panna väiksematest osakestest. Ja nagu Lego-maailmas, on ka siin teatud hulk elementaarseid põhiplokke. Järgnevalt kirjeldangi näidete varal kõiki neid põhiplokke.</para>
<para>Kui otsid lihtsalt tavalist teksti, ei ole regulaaravaldist erilist mõtet kasutada. Nimelt on regulaaravaldistes mõnedel märkidel eritähendus: <literal>.*|$</literal>. Nii et kui soovid otsida teksti <literal>kde.</literal> (s.t. tähti <literal>kde</literal>, millele järgneb punkt), siis tuleks see väljendada nii: <literal>kde\.</literal><footnote><para>Regulaaravaldise redaktor lahendab selle probleemi sinu eest, hoolitsedes paomärkide õigesse kohta asetamise eest.</para></footnote> Tavalise <literal>.</literal> asemel tuleb niisiis kirjutada <literal>\.</literal>, mida nimetatakse <emphasis>paomärgiks</emphasis>. </para>
<para>Kui oled valinud KDE-s midagi, mis näeb välja nagu URL, pakub <command>Klipper</command> võimalust käivitada <command>Konqueror</command> antud URL-iga.</para>
<para><command>Klipper</command> suudab seda teha valikut kokku sobitades mitme erineva regulaaravaldisega ja kui üks neist sobib, pakutaksegi välja vastav võimalus.</para>
<para>Regulaaravaldised URL-i jaoks määravad (lisaks muudele asjadele), et valik peab algama tekstiga <literal>http://</literal>. Regulaaravaldises kirjeldatakse seda tekstile <literal>http://</literal> katust (märk <literal>^</literal>) ette asetades.</para>
<para>Ülaltoodu on näide positsiooni kasutamisest regulaaravaldises. Samamoodi saab <emphasis>realõpu</emphasis> positsiooni määrata dollarimärgiga <literal>$</literal>.</para>
<title>Sõna <literal>see</literal>, aga mitte <emphasis>see</emphasis><literal>s</literal>, <literal>glas</literal><emphasis>see</emphasis> või <literal>met</literal><emphasis>see</emphasis><literal>n</literal> otsimine</title>
<para>Selle leidmiseks saab kasutada kaht täiendavat positsioonitüüpi, nimelt <emphasis>sõnapiire</emphasis> ja <emphasis>mitte-<emphasis>sõnapiire</emphasis></emphasis>. Positsioone määratakse väljenditega <literal>\b</literal> (sõnapiire) ja <literal>\B</literal> (mitte-sõnapiire)<emphasis></emphasis></para>
<para>Nii saab sõna <literal>see</literal> otsida regulaaravaldisega <literal>\bsee\b</literal>. See määrab, et otsitakse sõna <literal>see</literal>, millel ei eelneks ega järgneks tähti (s.t. et tegu oleks sõnapiirdega nii sõna ees kui järel)</para>
<para>Nelja regulaaravaldise positsiooniväljendust saab redaktoris lisada <link linkend="positiontool">nelja erineva positsioonivahendi</link> abil</para>
<title>Kas <literal>see</literal> või <literal>too</literal> otsimine</title>
<para>Oletame, et soovid oma dokumendis otsida nii sõna <literal>see</literal> kui ka sõna <literal>too</literal>. Tavalist otsingut kasutades pead operatsiooni kaks korda ette võtma, otsides esimesel korral sõna <literal>see</literal> ja teisel <literal>too</literal>.</para>
<para>Regulaaravaldise abil saab mõlemat korraga otsida. Selleks tuleb otsida väljendit <literal>see|too</literal> ehk siis eraldada kaks otsitavat sõna püstkriipsuga.<footnote><para>Arvesta, et mõlemal pool püstkriipsu asub regulaaravaldis, nii et selle võimalusega ei saa otsida mitte ainult kaht erinevat tekstiosa, vaid ka kaht erinevat regulaaravaldise sobivust.</para></footnote></para>
<para>Regulaaravaldiste redaktoris ei pea sa püstkriipsu ise kirjutama, piisab, kui valida <link linkend="altntool">alternatiivivahend</link> ja lisada alamregulaaravaldised teineteise peale.</para>
<para>Regulaaravaldisi võrreldakse sageli metamärkide kasutamisega shellis, see tähendab võimega määrata korraga mitu faili tärni kasutades. Ilmselt tunned järgmistes näidetes ära metamärgi kasutamise: <itemizedlist>
<listitem><para><literal>ls *.txt</literal> - siin on <literal>*.txt</literal> shelli metamärk, mis tähistab sobivust iga failiga, mille nime lõpus on <literal>*.txt</literal></para></listitem>
<listitem><para><literal>cat test??.res</literal> - sobib iga fail, mille alguses on <literal>test</literal>, millele järgneb kaks suvalist märki ja mis lõpeb märkidega <literal>.res</literal></para></listitem>
<para>Shellis tähistab tärn suvalist märki, mis esineb suvaline arv korda. Teisisõnu vastab tärn <emphasis>suvalisele</emphasis>. Regulaaravaldises tähistatakse seda <literal>.*</literal>. Punkt tähendab siin suvalist üksikut, s.t. ainult <emphasis>üht</emphasis> märki ning tärn seda, et sellele eelnev regulaaravaldis võib sobida suvaline arv kordi. Koos tähendabki see suvalise märgi sobivust suvaline arv kordi.</para>
<para>See võib tunduda üsna keerulisena, aga kui taipad asja tuuma, saad küllap aru, kui võimas see on. Võtame ette veel ühe elementaarse regulaaravaldise: <literal>a</literal>. Täht <literal>a</literal> omaette tähendab sobivust üksiku märgiga, nimelt tähega <literal>a</literal>. Kui me ühendame ta aga tärniga, s.t. <literal>a*</literal>, siis on meil tegemist regulaaravaldisega, mis sobib suvalise arvu a-dega.</para>
<para>Mitut regulaaravaldist on võimalik kombineerida, asetades nad üksteise järele, näiteks <literal>ba(na)*</literal>. <footnote><para><literal>(na)*</literal> tähendab lihtsalt seda, et sulgudes olev võib esineda suvaline arv kordi.</para></footnote> Oletades, et kirjutasid selle regulaaravaldise tekstiredaktori otsinguväljale, leiad lisaks muudele näiteks järgmised sõnad: <literal>ba</literal>, <literal>bana</literal>, <literal>banana</literal>, <literal>bananananananana</literal> </para>
<para>Eeltoodust lähtudes ei ole sul loodetavasti kuigi keeruline kirjutada shelli metamärgiga otsing <literal>test??.res</literal> regulaaravaldisena. Õige vastus: <literal>test..\.res</literal>. Punkt tähistab suvalist märki. Üksiku punkti jaoks tuleb kirjutada <literal>\.</literal><footnote><para>Seda nimetatakse antud juhul paomärgiks</para></footnote>. Teisisõnu vastab regulaaravaldis <literal>\.</literal> punktile, punkt omaette aga suvalisele märgile. </para>
<para>Regulaaravaldiste redaktoris luuakse korduvad regulaaravaldised <link linkend="repeattool">kordusvahendi</link> abil </para>
<title><literal>&</literal> asemel <literal>&amp;</literal> HTML-dokumendis</title> <para>HTML-keeles tuleb erimärk <literal>&</literal> kirjutada kujul <literal>&&</literal>, mis mõnevõrra sarnaneb paomärgi kasutamisega regulaaravaldises.</para>
<para>Oletame, et kirjutasid HTML-dokumendi tavalises redaktoris (nt. XEmacs või Kate) ning unustasid täiesti selle reegli. Nüüd oled mures, sest pead asendama kõik märgid <literal>&</literal> märgiga <literal>&amp;</literal>.</para>
<para>Seda saab hõlpsast teha ka tavalist otsimist ja asendamist kasutades, aga sellel on üks väike häda küljes. Oletame, et teksti kirjutades mõnel korral sul see reegel siiski meenus - aga ainult <emphasis>mõnel korral</emphasis>. Tingimusteta asendamine tähendab nüüd seda, et <literal>&amp;</literal> asemele ilmub <literal>&amp;amp;</literal></para>
<para>Tegelikult aga soovid ju seda, et <literal>&</literal> asendataks ainult siis, kui sellele <emphasis>ei</emphasis> järgne <literal>amp;</literal>. Seda saab teha regulaaravaldisega, kui kasutada <emphasis>positiivset ettevaadet</emphasis>. </para>
<para>Regulaaravaldis, mis sobib ainult ja-märgiga, kui sellele ei järgne märke <literal>amp;</literal>, näeb välja selline: <literal>&(?!amp;)</literal>. Seda on mõistagi lihtsam lugeda regulaaravaldiste redaktorit kasutades, kus saab tarvitada <link linkend="lookaheadtools">ettevaadete vahendeid</link>.</para>
<para>Redaktori tähtsaim osa on mõistagi redigeerimisala ehk siis ala, kus regulaaravaldis kokku pannakse. See on suur hall ala akna keskel.</para>
<para>Redigeerimisala kohal on kaks tööriistariba, millest üks sisaldab <link linkend="editingtools">redigeerimistoiminguid</link> (sarnaselt joonistamistööriistadega joonistamisrakenduses). Teisel tööriistaribal paikneb nupp <emphasis>Mis see on?</emphasis> ning toimingu tagasivõtmise ja uuestisooritamise nupud.</para>
<para>Redigeerimisala all asub parajasti loodav regulaaravaldis niinimetatud ASCII süntaksis. ASCII süntaks värskeneb vastavalt regulaaravaldise redigeerimisele graafilises redaktoris. Kui soovid aga redigeerida hoopis ASCII süntaksit, on ka see võimalik - sellisel juhul värskendab ennast hoopis graafiline redaktor.</para>
<para>Lõpuks on redigeerimisalast vasakul valik eelnevalt loodud regulaaravaldisi. Neil on kahesugune otstarve: (1) kui avad redaktori regulaaravaldisega, muudetakse see <emphasis>ilusamaks</emphasis> või mõistetavamaks. Ülaltoodud pildil on ASCII süntaks ".*" asendatud kastiga, milles on kiri "suvaline". (2) Kui lisad regulaaravaldise, võid kasutada eelnevalt loodud regulaaravaldiste valikust omaenda regulaaravaldiste loomiseks mõningaid <quote>ehitusplokke</quote>. Vaata <link linkend="userdefinedregexps">kasutaja määratud regulaaravaldistest</link> kõnelevat osa, kus selgitatakse omaloodud regulaaravaldiste salvestamist.</para>
<para>Selles osas eeldan, et oled läbi lugenud peatüki, mis <link linkend="whatIsARegExp">selgitas regulaaravaldiste olemust</link>, või et sa tead seda juba varem.</para>
<para>Valikutööriista kasutatakse elementide märkimisel lõikamiseks ja asetamiseks ning lohistamiseks. See on äärmiselt sarnane suvalise joonistamisrakenduse valikutööriistaga.</para>
<para>Selle tööriista abil saab lisada tavalist teksti. Seda mõistetakse regulaaravaldises täht-tähelt, s.t. siin ei pruugi muret tunda paomärkide pärast. Ülaltoodud näites on loomisel järgmine regulaaravaldis: <literal>abc\*\\\)</literal></para>
<para>Selle abil saab lisada märgivahemiku. ASCII süntaksis oleks näideteks <literal>[0-9]</literal>, <literal>[^a-zA-Z,_]</literal>. Kui lisada element selle tööriista abil, ilmub dialoog, kus saab määrata märgivahemiku.</para>
<para>See tähendab elementide kordust. ASCII süntaksis väljendatakse seda järgmiste märkidega: tärn (*), pluss (+), küsimärk (?) ja vahemik ({3,5}). Kui lisada element selle tööriista abil, ilmub dialoog, kus saab määrata korduste arvu.</para>
<para>Korduvaid elemente saab luua nii seestpoolt väljapoole kui vastupidi. See tähendab, et võid esmalt joonistada, mida korrata, selle valida ja kasutada kordustööriista selle kordamiseks. Teise võimalusena võid aga esmalt lisada korduselemendi ja siis joonistada elemendi sisse selle, mida korrata.</para>
<para>Kompleksitööriist ei kujuta endast õigupoolest üldse regulaaravaldist. Seda kasutatakse erinevate alamkomponentide grupeerimiseks kasti, mille võib hõlpsasti kahandada vaid pealkirjaks. Seda võib näha ülaltoodud pildil paremal pool.</para>
<para>Rea alguse ja lõpu tööriistad tähistavad vastavalt sobivust rea lõpus ja alguses. Ülaltoodud pildil nähtav regulaaravaldis vastab niisiis vaid reale, kus on ainult tühikud.</para>
<para>Sõnapiirdetööriistad tähistavad sobivust vastavalt sõnapiirdele või selle puudumisele. Ülaltoodud pildil nähtav regulaaravaldis vastab kõigile sõnadele, mille alguses seisab <literal>see</literal>. Sõna <literal>see</literal> ise aga ei sobi.</para>
<para>Ettevaatetööriistad määravad vastavalt positiivse või negatiivse regulaaravaldise sobivuse. See sobivus ei ole aga osa üldisest sobivusest.</para>
<title>Kasutaja määratud regulaaravaldised</title>
<para>Redigeerimisalast vasakul asub nimekirjaga kast, mis sisaldab kasutaja määratud regulaaravaldisi. Mõned regulaaravaldised on juba eelnevalt paigaldatud KDE paigaldamise ajal, teisi saad ise salvestada.</para>
<para>Neil regulaaravaldistel on kaks eesmärki (<link linkend="screenorganization">vaata täpsemat kirjeldust</link>): (1) pakkuda sulle valikut <quote>ehitusplokke</quote> ja (2) muuta mõned levinumad regulaaravaldised ilusamaks.</para>
<para>Omaenda regulaaravaldisi saab salvestada hiire parema nupu klõpsuga redigeerimisalal ning valides ilmuvast hüpikmenüüst käsu <literal>Salvesta regulaaravaldis</literal>.</para>
<para>Kui salvestatav regulaaravaldis kuulub <link linkend="compoundtool">kompleksavaldisse</link>, kasutatakse seda järgnevates regulaaravaldiste nii-öelda ilustamise operatsioonides.</para>
<para>Kasutaja määratud regulaaravaldisi saab kustutada või ümber nimetada hiire parema nupu klõpsuga vastava regulaaravaldise nimel nimekirjakastis.</para>
<para>Vigadest saab teatada ja oma soove avaldada <ulink url="http://bugs.trinitydesktop.org/">KDE vigade jälgimise süsteemi</ulink> vahendusel. <emphasis role="strong">Enne seda</emphasis>, kui annad teada veast või pakud välja mõne uuendusvõimaluse, kontrolli palun, et seda ei oleks juba <ulink url="http://bugs.trinitydesktop.org/simple_search.cgi?id=kregexpeditor">teatatud/välja pakutud</ulink>.</para>
<title>Miks ma ei leia nuppu <emphasis>Redigeeri regulaaravaldist</emphasis> ei Konqueroris ega mõnes muus KDE3 rakenduses?</title>
<para>Regulaaravaldiste element asub paketis KDE-utils. Kui seda paketti ei ole paigaldatud, ei saa ka nupp <emphasis>Redigeeri regulaaravaldist</emphasis> üheski rakenduses nähtav olla.</para>