You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-i18n/tde-i18n-sv/docs/tdeutils/KRegExpEditor/index.docbook

401 lines
28 KiB

<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY % Swedish "INCLUDE">
<!ENTITY % addindex "IGNORE">
]>
<book lang="&language;">
<bookinfo>
<title>Handbok Editor för reguljära uttryck</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>Den här handboken beskriver den grafiska komponenten för att redigera reguljära uttryck.</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>reguljärt uttryck</keyword>
</keywordset>
</bookinfo>
<!-- ====================================================================== -->
<!-- Introduction -->
<!-- ====================================================================== -->
<chapter id="introduction">
<title>Inledning</title>
<para>The regular expression editor is an editor for editing regular expression in a graphical style (in contrast to the ascii syntax). Traditionally regular expressions have been typed in the ascii syntax, which for example looks like <literal>^.*kde\b</literal>. The major drawback of this style is: <itemizedlist>
<listitem><para>Det är svårt att förstå för andra än programmerare.</para></listitem>
<listitem><para>It requires that you <emphasis>escapes</emphasis> certain symbols (to match a star for example, you need to type <literal>\*</literal>). </para></listitem>
<listitem><para>Det kräver att du kommer ihåg regler för <emphasis>prioritet</emphasis> (Vad matchar <literal>x|y*</literal>? Ett ensamt <literal>x</literal> eller ett antal <literal>y</literal>, <emphasis>ELLER</emphasis> ett antal blandade <literal>x</literal> och <literal>y</literal>?)</para></listitem>
</itemizedlist>
</para>
<para>The regular expression editor, on the other hand, lets you <emphasis>draw</emphasis> your regular expression in an unambiguous way. The editor solves at least item two and three above. It might not make regular expressions available for the non-programmers, though only tests by users can tell that. So, are you a non programmer, which have gained the power of regular expression from this editor, then please <ulink url="mailto:blackie@kde.org">let me know</ulink>. </para>
</chapter>
<!-- ====================================================================== -->
<!-- What is a Regular Expression -->
<!-- ====================================================================== -->
<chapter id="whatIsARegExp">
<title>Vad är ett reguljärt uttryck</title>
<para>Regular expression is a way to specify <emphasis>conditions</emphasis> to be fulfilled for a situation in mind. Normally when you search in a text editor you specify the text to search for <emphasis>literally</emphasis>, using regular expression, on the other hand, you tell what a given match would look like. Examples of this includes <emphasis>I'm searching for the word KDE, but only at the beginning of the line</emphasis>, or <emphasis>I'm searching for the word <literal>the</literal>, but it must stand on its own</emphasis>, or <emphasis>I'm searching for files starting with the word <literal>test</literal>, followed by a number of digits, for example <literal>test12</literal>, <literal>test107</literal> and <literal>test007</literal></emphasis></para>
<para>You build regular expressions from sub regular expression, just like you build large Lego toys from smaller subparts. As in the Lego world, there are a number of basic building blocks. In the following I will describe each of these basic building blocks using a number of examples.</para>
<example>
<title>Söka efter normal text</title>
<para>If you just want to search for a given text, then regular expression is definitely not a good choice. The reason for this is that regular expressions assign special meaning to some characters. This includes the following characters: <literal>.*|$</literal>. Thus if you want to search for the text <literal>kde.</literal> (i.e. the characters <literal>kde</literal> followed by a period), then you would need to specify this as <literal>kde\.</literal><footnote><para>The regular expression editor solves this problem by taking care of escape rules for you.</para></footnote> Writing <literal>\.</literal> rather than just <literal>.</literal> is called <emphasis>escaping</emphasis>. </para>
</example>
<example id="positionregexp">
<title>Matching URL's</title>
<para>När du väljer något som ser ut som en webbadress i KDE, så erbjuder sig programmet <command>klipper</command> att starta <command>konqueror</command> med den markerade webbadressen.</para>
<para><command>Klipper</command> gör det här genom att matcha markeringen med flera olika reguljära uttryck, och om ett av uttrycken matchar, så erbjuds kommandot som hör ihop med uttrycket.</para>
<para>Det reguljära uttrycket för webbadresser säger (bland annat), att texten måste börja med strängen <literal>http://</literal>. Det här beskrivs med ett reguljärt uttryck, genom att inleda strängen <literal>http://</literal> med en hatt (tecknet <literal>^</literal>).</para>
<para>Ovanstående är ett exempel på att matcha positioner med reguljära uttryck. På samma sätt kan positionen <emphasis>radslut</emphasis> matchas med tecknet <literal>$</literal> (dvs. ett dollartecken).</para>
</example>
<example id="boundaryregexp">
<title>Att söka efter ordet <literal>den</literal>, men inte <emphasis>den</emphasis><literal>na</literal>, <literal>an</literal><emphasis>den</emphasis> eller <literal>stu</literal><emphasis>den</emphasis><literal>t</literal>.</title>
<para>Två ytterligare typer av position kan matchas på ovanstående sätt, nämligen en <emphasis>position vid en ordgräns</emphasis>, och <emphasis>en position som <emphasis>inte</emphasis> är vid en ordgräns</emphasis>. Positionerna anges med texten <literal>\b</literal> (för ordgräns) och <literal>\B</literal> (för inte ordgräns)<emphasis></emphasis>.</para>
<para>På så sätt kan en sökning efter ordet <literal>den</literal> göras genom att använda det reguljära uttrycket <literal>\bden\b</literal>. Det här anger att vi söker efter <literal>den</literal> utan några bokstäver på båda sidorna (dvs. med en ordgräns på båda sidorna).</para>
<para>De fyra reguljära uttrycken för att matcha positioner, infogas av editorn för reguljära uttryck med hjälp av <link linkend="positiontool">fyra olika positionsverktyg</link>.</para>
</example>
<example id="altnregexp">
<title>Söka efter antingen <literal>hit</literal> eller <literal>dit</literal></title>
<para>Antag att du vill gå igenom dokumentet och antingen leta efter ordet <literal>hit</literal> eller <literal>dit</literal>. Med en normal sökmetod, skulle du kunna göra det här i två omgångar, första gången skulle du söka efter <literal>hit</literal>, och andra gången efter <literal>dit</literal>.</para>
<para>Med reguljära uttryck skulle du söka efter båda på en gång. Du gör det här genom att söka efter <literal>hit|dit</literal>. dvs. avdelar de två orden med ett vertikalt streck.<footnote><para>Observera att varje sida av det vertikala strecket är ett reguljärt uttryck, så den här funktionen är inte bara till för att söka efter två olika strängar, utan för att söka efter två olika reguljära uttryck.</para></footnote></para>
<para>In the regular expression editor you do not write the vertical bar yourself, but instead select the <link linkend="altntool">alternative tool</link>, and inserts the sub regular expressions above each other.</para>
</example>
<example id="repeatregexp">
<title>Matcha vad som helst</title>
<para>Reguljära uttryck jämförs ofta med jokertecken som används för matchning i skalet. Det här är möjligheten att ange flera filer med en asterisk. Du känner säkert igen matchning med jokertecken i följande exempel: <itemizedlist>
<listitem><para><literal>rm *~</literal> - here <literal>*~</literal> is the shell wildcard matching every file ending in <literal>~</literal></para></listitem>
<listitem><para><literal>cat test??.res</literal> - matchar varje fil som börjar med <literal>test</literal>, och sedan följs av två godtyckliga tecken, och till sist följs av texten <literal>.res</literal>.</para></listitem>
</itemizedlist>
</para>
<para>I skalet matchar asterisken alla tecken hur många gånger som helst. Med andra ord så matchar asterisken <emphasis>vad som helst</emphasis>. Det här skrivs som <literal>.*</literal> med syntaxen för reguljära uttryck. Punkten matchar vilket enskilt tecken som helst, dvs. bara <emphasis>ett</emphasis> tecken, och asterisken anger att det föregående reguljära uttrycket ska matchas hur många gånger som helst. Tillsammans säger detta vilket enskilt tecken som helst, hur många gånger som helst.</para>
<para>Det här kan verka onödigt komplicerat, men när du ser hela bilden, inser du hur kraftfullt detta är. Låt oss titta på ett annat grundläggande reguljärt uttryck: <literal>a</literal>. Den ensamma bokstaven <literal>a</literal> är ett reguljärt uttryck som matchar en enda bokstav, nämligen bokstaven <literal>a</literal>. Om vi kombinerar det här med asterisken, dvs. <literal>a*</literal>, så har vi ett reguljärt uttryck som matchar hur många a:n som helst.</para>
<para>Vi kan kombinera flera reguljära uttryck efter varandra, till exempel <literal>b(an)*</literal>. <footnote><para><literal>(an)*</literal> anger bara att vad som är inom parentes upprepas hur många gånger som helst.</para></footnote> Antag att du skrev in det här reguljära uttrycket i sökfältet på en texteditor. Då skulle du (bland annat) ha hittat följande ord: <literal>ban</literal>, <literal>banan</literal>, <literal>bananan</literal>, <literal>banananananananan</literal>. </para>
<para>Med information ovan, är det förhoppningsvis inte svårt för dig att skriva skalets jokertecken <literal>test??.res</literal> som ett reguljärt uttryck. Svaret är: <literal>test..\.res</literal>. En ensam punkt är vilket tecken som helst. För att matcha en ensam punkt, måste du skriva <literal>\.</literal><footnote><para>Det här kallas att undanta.</para></footnote> Med andra ord, så matchar det reguljära uttrycket <literal>\.</literal> en punkt, medan en ensam punkt matchar vilket tecken som helst. </para>
<para>In the regular expression editor, repeated regular expression is created using the <link linkend="repeattool">repeat tool</link> </para>
</example>
<example id="lookaheadregexp">
<title>Replacing <literal>&amp;</literal> with <literal>&amp;amp;</literal> in HTML document</title>
<para>I HTML måste specialtecknet <literal>&amp;</literal> skrivas som <literal>&amp;amp;</literal> - det här liknar undantag i reguljära uttryck.</para>
<para>Antag att du har skrivit ett HTML-dokument med en vanlig editor (t.ex. Xemacs eller Kate), och du totalt glömt bort den här regeln. Vad du skulle göra när du insåg misstaget, vore att byta ut varje förekomst av <literal>&amp;</literal> mot <literal>&amp;amp;</literal>.</para>
<para>This can easily be done using normal search and replace, there is, however, one glitch. Imagine that you did remember this rule - <emphasis>just a bit</emphasis> - and did it right some of the places. Replacing unconditionally would result in <literal>&amp;amp;</literal> being replaced with <literal>&amp;amp;amp;</literal></para>
<para>Vad du verkligen vill säga är att <literal>&amp;</literal> bara ska ersättas om det <emphasis>inte</emphasis> följs av bokstäverna <literal>amp;</literal>. Du kan göra det här med reguljära uttryck genom att använda <emphasis>positiv sökning framåt</emphasis>. </para>
<para>Det reguljära uttrycket, som bara matchar ett och-tecken om det inte följs av tecknen <literal>amp;</literal> ser ut som följer: <literal>&amp;(?!amp;)</literal>. Det här är förstås lättare att läsa genom att använda editorn för reguljära uttryck, där du skulle använda ett <link linkend="lookaheadtools">verktyg för sökning framåt</link>.</para>
</example>
</chapter>
<!-- ====================================================================== -->
<!-- Using the Regular Expression Editor -->
<!-- ====================================================================== -->
<chapter id="theEditor">
<title>Att använda Editorn för reguljära uttryck</title>
<para>Det här kapitlet talar om hur editorn för reguljära uttryck fungerar. </para>
<!-- ====================================================================== -->
<!-- The organization of the screen -->
<!-- ====================================================================== -->
<sect1 id="screenorganization">
<title>Organisation av skärmen</title>
<mediaobject>
<imageobject><imagedata format="PNG" fileref="theEditor.png"/></imageobject>
</mediaobject>
<para>Den viktigaste delen av editorn är förstås redigeringsområdet, som är området där du ritar upp det reguljära uttrycket. Det här området är den stora gråa rutan i mitten.</para>
<para>Ovanför redigeringsområdet finns två verktygsrader, där den första innehåller <link linkend="editingtools">redigeringsåtgärder</link> - som liknar ritverktygen i ett ritprogram. Den andra verktygsraden innehåller knappen <emphasis>Vad är det här</emphasis>, och knappar för att ångra och göra om.</para>
<para></para>
<para>Under redigeringsområdet hittar du det reguljära uttrycket som för närvarande är uppbyggt, med den så kallade ASCII-syntaxen. Denna uppdateras medan du redigerar det reguljära uttrycket i den grafiska editorn. Om du hellre vill redigera ASCII-syntaxen, gör gärna det. Den grafiska editorn uppdateras i farten för att visa dina ändringar.</para>
<para>Till sist, längst till vänster i redigeringsområdet hittar du ett antal färdigbyggda reguljära uttryck. De har två syften: (1) När du laddar ett reguljärt uttryck i editorn blir det här uttrycket <emphasis>snyggare</emphasis>, eller mer begripligt genom att ersätta vanliga reguljära uttryck. På skärmbilden ovan, kan du se hur ASCII-syntaxen ".*" har ersatts med en ruta som säger "anything" (vad som helst). (2) När du lägger till reguljära uttryck kan du hitta byggblock för dina egna reguljära uttryck bland de redan uppbyggda uttrycken. Se avsnittet om <link linkend="userdefinedregexps">användardefinierade reguljära uttryck</link> för att lära dig hur man sparar sina egna reguljära uttryck.</para>
</sect1>
<!-- ====================================================================== -->
<!-- Editing Tools -->
<!-- ====================================================================== -->
<sect1 id="editingtools">
<title>Redigeringsverktyg</title>
<para>Texten i det här avsnittet förutsätter att du har läst kapitlet om <link linkend="whatIsARegExp">vad ett reguljärt uttryck är</link>, eller känner till ämnet sedan tidigare.</para>
<para>Alla redigeringsverktyg finns i verktygsraden ovanför redigeringsområdet. Vart och ett av dem beskrivs i det följande.</para>
<simplesect id="selecttool">
<title>Markeringsverktyg <inlinemediaobject> <imageobject><imagedata format="PNG" fileref="select.png"/>
</imageobject></inlinemediaobject></title>
<para>Markeringsverktyget används för att markera element för att klippa och klistra, eller dra och släppa. Det här är mycket likt ett markeringsverktyg i vilket ritprogram som helst.</para>
</simplesect>
<simplesect id="texttool"><title>Textverktyg <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="text.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="texttool.png"/>
</imageobject></inlinemediaobject></para>
<para>Med det här verktyget lägger du till normal text som ska matcha. Texten matchas bokstavligen, dvs. du behöver inte bry dig om att undanta särskilda tecken. I exemplet ovan, så byggs följande reguljära uttryck: <literal>abc\*\\\)</literal>.</para>
</simplesect>
<simplesect id="characterstool"><title>Teckenverktyg <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="characters.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="charactertool.png"/>
</imageobject></inlinemediaobject></para>
<para>Med det här verktyget lägger du till teckenintervall. Exempel är vad som motsvaras av ASCII-texten <literal>[0-9]</literal>, <literal>[^a-zA-Z,_]</literal>. När du lägger till ett element med det här verktyget, visas en dialogruta där du anger teckenintervallen.</para>
<para>Se beskrivningen av <link linkend="repeatregexp">upprepade reguljära uttryck</link>.</para>
</simplesect>
<simplesect id="anychartool"><title>Verktyg för alla tecken <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="anychar.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="anychartool.png"/>
</imageobject></inlinemediaobject></para>
<para>Det här är det reguljära uttrycket "punkt" (.). Det matchar vilket tecken som helst.</para>
</simplesect>
<simplesect id="repeattool"><title>Upprepningsverktyg <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="repeat.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="repeattool.png"/>
</imageobject></inlinemediaobject></para>
<para>Det här upprepar element. Det omfattar vad som i ASCII-syntax representeras med en asterisk (*), ett plustecken (+), ett frågetecken (?) och intervall ({3,5}). När du lägger till ett element med det här verktyget, så visas en dialogruta som frågar efter antalet gånger att upprepa.</para>
<para>Du anger vad som ska upprepas, genom att rita det inne i rutan som det här verktyget lägger till.</para>
<para>Upprepade element kan både byggas upp utifrån och in, och inifrån och ut. Det vill säga att du först kan rita det som ska upprepas, markera det och använda upprepningsverktyget för att upprepa det. Som ett alternativ kan du först lägga till upprepningselementet, och rita det som ska upprepas inne i det.</para>
<para>Se beskrivningen av <link linkend="repeatregexp">upprepade reguljära uttryck</link>.</para>
</simplesect>
<simplesect id="altntool"><title>Alternativverktyg <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="altn.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="altntool.png"/>
</imageobject></inlinemediaobject></para>
<para>Det här är alternativa reguljära uttryck (|). Du anger alternativ genom att rita varje alternativ ovanpå varandra inne i rutan som det här verktyget lägger till.</para>
<para>Se beskrivningen av <link linkend="altnregexp">alternativa reguljära uttryck</link>.</para>
</simplesect>
<simplesect id="compoundtool"><title>Sammansättningsverktyg <inlinemediaobject><imageobject>
<imagedata format="PNG" fileref="compound.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="compoundtool.png"/>
</imageobject></inlinemediaobject></para>
<para>Sammansättningsverktyget representerar inte något reguljärt uttryck. Det används för att gruppera andra delar i en ruta, som lätt kan minskas för att bara visa namnet. Det här kan ses till höger på skärmbilden ovan.</para>
</simplesect>
<simplesect id="positiontool"><title>Line Start/End Tools <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>Verktygen för radbörjan och radslut matchar början på raden, och slutet på raden. Det reguljära uttrycket på skärmbilden ovan, matchar alltså hela rader med bara mellanslag.</para>
<para>Se beskrivningen av <link linkend="positionregexp">reguljära uttryck för position</link>.</para>
</simplesect>
<simplesect><title>Word (Non)Boundary Tools <inlinemediaobject><imageobject> <imagedata format="PNG" fileref="wordboundary.png"/> </imageobject></inlinemediaobject>&nbsp;&nbsp; <inlinemediaobject><imageobject><imagedata format="PNG" fileref="nonwordboundary.png"/>
</imageobject></inlinemediaobject></title>
<para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="boundarytools.png"/>
</imageobject></inlinemediaobject></para>
<para>Gränsverktygen matchar en ordgräns eller allt som inte är en ordgräns. Det reguljära uttrycket på skärmbilden matchar alltså alla ord som börjar med <literal>den</literal>. Ordet <literal>den</literal> självt, matchas dock inte.</para>
<para>Se beskrivningen av <link linkend="boundaryregexp">reguljära uttryck för gränser</link>.</para>
</simplesect>
<simplesect id="lookaheadtools"><title>Positive/Negative Lookahead Tools <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>Verktygen för sökning framåt anger antingen ett positivt eller negativt reguljärt uttryck som ska matchas. Den här matchningen är dock inte en del av hela matchningen.</para>
<para>Note: You are only allowed to place look ahead's at the end of the regular expressions. The Regular Expression Editor widget does not enforce this.</para>
<para>Se beskrivningen av <link linkend="lookaheadregexp">reguljära uttryck med sökning framåt</link>.</para>
</simplesect>
</sect1>
<!-- ====================================================================== -->
<!-- User Defined Regular Expressions -->
<!-- ====================================================================== -->
<sect1 id="userdefinedregexps">
<title>Användardefinierade reguljära uttryck</title>
<para>To the left of the editing area is a list box located containing user defined regular expressions. Some regular expressions are pre installed with your KDE installation, while other you can save yourself.</para>
<para>De här reguljära uttrycken har två funktioner (<link linkend="screenorganization">se den detaljerade beskrivningen</link>), nämligen (1) erbjuder en mängd byggblock, och (2) gör vanliga reguljära uttryck snyggare.</para>
<para>Du kan spara dina egna reguljära uttryck, genom att högerklicka med musknappen i redigeringsområdet, och välja <literal>Spara reguljärt uttryck</literal>.</para>
<para>If the regular expression you save is within a <link linkend="compoundtool">compound container</link> then the regular expression will take part in making subsequent regular expressions pretier.</para>
<para>User defined regular expression can be deleted or renamed by pressing the right mouse button on top of the regular expression in question in the list box.</para>
</sect1>
</chapter>
<!-- ====================================================================== -->
<!-- Reporting a bug and Suggesting Features -->
<!-- ====================================================================== -->
<chapter id="bugreport">
<title>Rapportera fel och föreslå funktioner</title>
<para>Bug reports and feature requests should be submitted through the <ulink url="http://bugs.kde.org/">KDE Bug Tracking System</ulink>. <emphasis role="strong">Before</emphasis> you report a bug or suggest a feature, please check that it hasn't already been <ulink url="http://bugs.kde.org/db/pa/lkregexpeditor.html">reported/suggested</ulink></para>
</chapter>
<!-- ====================================================================== -->
<!-- FAQ -->
<!-- ====================================================================== -->
<chapter id="faq">
<title>Vanliga frågor</title>
<sect1 id="question1">
<title>Stöder editorn för reguljära uttryck bakåtreferenser?</title>
<para>Nej, för närvarande stöds inte detta. Det är planerat till nästa version.</para>
</sect1>
<sect1 id="question2">
<title>Visar editorn för reguljära uttryck matchningar?</title>
<para>Nej. Förhoppningsvis blir det här tillgängligt i nästa version.</para>
</sect1>
<sect1 id="question3">
<title>Jag är upphovsman till ett KDE-program. Hur kan jag använda den här grafiska komponenten i mitt program?</title>
<para>Se <ulink url="http://developer.kde.org/documentation/library/cvs-api/classref/interfaces/KRegExpEditorInterface.html">Dokumentationen för klassen KRegExpEditorInterface</ulink>.</para>
</sect1>
<sect1 id="question4">
<title>Jag kan inte hitta knappen <emphasis>Redigera reguljärt uttryck</emphasis> i till exempel Konqueror på en annan KDE3 installation, varför?</title>
<para>Den grafiska komponenten för reguljära uttryck finns i paketet KDE-utils. Om du inte har installerat det här paketet, så visas inte knapparna för att <emphasis>redigera reguljära uttryck</emphasis> i program.</para>
</sect1>
</chapter>
<!-- ====================================================================== -->
<!-- Credits and Licenses -->
<!-- ====================================================================== -->
<chapter id="credits-and-license">
<title>Tack till och licenser</title>
<para>Dokumentation är copyright 2001, Jesper K. Pedersen <email>blackie@kde.org</email> </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:
-->