Difference between revisions of "NL/Documentation/How Tos/Reguliere expressies in Calc"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (moved Documentation/nl/How Tos/Reguliere expressies in Calc to NL/Documentation/How Tos/Reguliere expressies in Calc: Moving NL documentation to the NL NLC section of the Wiki)
m
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Reguliere expressies in Calc}}
+
{{DISPLAYTITLE:Reguliere expressies in Calc}}  
  
== Introductie ==
+
== Introductie ==
Simpel gezegd zijn reguliere expressies een slimme manier om tekst te vinden.
+
  
 +
Simpel gezegd zijn reguliere expressies een slimme manier om tekst te vinden.
  
Typisch gebruik voor reguliere expressies is het vinden van tekst; om bijvoorbeeld alle cellen in uw werkblad te zoeken die '''mannelijk''' of '''vrouwelijk''' bevatten, zou u kunnen zoeken met behulp van één enkele reguliere expressie.
+
<br> Typisch gebruik voor reguliere expressies is het vinden van tekst; om bijvoorbeeld alle cellen in uw werkblad te zoeken die '''mannelijk''' of '''vrouwelijk''' bevatten, zou u kunnen zoeken met behulp van één enkele reguliere expressie.  
  
 +
<br>
  
== Reguliere expressies in Calc en Writer ==
+
== Reguliere expressies in Calc en Writer ==
  
Reguliere expressies zijn als volgt beschikbaar in Calc:
+
Reguliere expressies zijn als volgt beschikbaar in Calc:  
  
*Bewerken - dialoogvenster Zoeken & vervangen
+
*Bewerken - dialoogvenster Zoeken &amp; vervangen
  
*Gegevens - Filter - Standaardfilter & Speciaal filter
+
*Gegevens - Filter - Standaardfilter &amp; Speciaal filter
  
 
*Bepaalde functies, zoals SOM.ALS, VERT.ZOEKEN
 
*Bepaalde functies, zoals SOM.ALS, VERT.ZOEKEN
  
De beste manier om reguliere expressies in Calc te leren kennen is om te beginnen te begrijpen hoe zij kunnen worden gebruikt in Zoeken en vervangen. Dit wordt behandeld door '<b>[[Documentation/nl/How_Tos/Reguliere expressies in Writer|HowTo voor reguliere expressies in Writer]]</b>', dat u zou moeten lezen.
+
De beste manier om reguliere expressies in Calc te leren kennen is om te beginnen te begrijpen hoe zij kunnen worden gebruikt in Zoeken en vervangen. Dit wordt behandeld door ''''[[NL/Documentation/How Tos/Reguliere expressies in Writer|HowTo voor reguliere expressies in Writer]]'''', dat u zou moeten lezen.  
  
 +
<br> In Calc worden reguliere expressies afzonderlijk toegepast op elke cel. (U zult zien dat reguliere expressies afzonderlijk worden toegepast op elke alinea in Writer.) Dus een zoekactie naar ''''r.d'''' zal overeenkomen met ''''rad'''' in cel A1 maar zal niet overeenkomen met ''''r'''' in cel A2 met ''''d'''' (of ''''ed'''') in cel A3. (De reguliere expressie ''''r.d'''' betekent 'probeer een overeenkomst te vinden voor ''''r'''', gevolgd door een ander teken, gevolgd door ''''d'''' ').
  
In Calc worden reguliere expressies afzonderlijk toegepast op elke cel. (U zult zien dat reguliere expressies afzonderlijk worden toegepast op elke alinea in Writer.) Dus een zoekactie naar '<b>r.d</b>' zal overeenkomen met '<b>rad</b>' in cel A1 maar zal niet overeenkomen met '<b>r</b>' in cel A2 met '<b>d</b>' (of '<b>ed</b>') in cel A3. (De reguliere expressie '<b>r.d</b>' betekent 'probeer een overeenkomst te vinden voor '<b>r</b>', gevolgd door een ander teken, gevolgd door '<b>d</b>' ').
+
== Reguliere expressies in functies van Calc  ==
  
== Reguliere expressies in functies van Calc ==
+
Er zijn een aantal functies in Calc die het gebruik van reguliere expressies toestaan:<br> ''''[[NL/Documentation/How Tos/Calc: functie SOM.ALS|SOM.ALS]]'''', ''''[[NL/Documentation/How Tos/Calc: functie AANTAL.ALS|AANTAL.ALS]]'''',<br> ''''[[NL/Documentation/How Tos/Calc: functie VERGELIJKEN|VERGELIJKEN]]'''', ''''[[NL/Documentation/How Tos/Calc: functie VIND.SPEC|VIND.SPEC]]'''', ''''[[NL/Documentation/How Tos/Calc: functie ZOEKEN|ZOEKEN]]'''', ''''[[NL/Documentation/How Tos/Calc: functie HORIZ.ZOEKEN|HORIZ.ZOEKEN]]'''', ''''[[NL/Documentation/How Tos/Calc: functie VERT.ZOEKEN|VERT.ZOEKEN]]'''',<br> ''''[[NL/Documentation/How Tos/Calc: functie DBAANTAL|DBAANTAL]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBAANTALC|DBAANTALC]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBSOM|DBSOM]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBPRODUCT|DBPRODUCT]]'''',<br> ''''[[NL/Documentation/How Tos/Calc: functie DBMAX|DBMAX]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBMIN|DBMIN]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBGEMIDDELDE|DBGEMIDDELDE]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBSTDEV|DBSTDEV]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBSTDEVP|DBSTDEVP]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBVAR|DBVAR]]'''', ''''[[NL/Documentation/How Tos/Calc: functie DBVARP|DBVARP]]'''',<br> ''''[[NL/Documentation/How Tos/Calc: functie DBLEZEN|DBLEZEN]]''''
  
Er zijn een aantal functies in Calc die het gebruik van reguliere expressies toestaan:<br>
+
<br> Of reguliere expressies worden gebruikt of niet wordt geselecteerd in het dialoogvenster Extra - Opties - OpenOffice.org Calc - Berekenen:  
'<b>[[Documentation/nl/How_Tos/Calc: functie SOM.ALS|SOM.ALS]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie AANTAL.ALS|AANTAL.ALS]]</b>',<br>
+
'<b>[[Documentation/nl/How_Tos/Calc: functie VERGELIJKEN|VERGELIJKEN]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie VIND.SPEC|VIND.SPEC]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie ZOEKEN|ZOEKEN]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie HORIZ.ZOEKEN|HORIZ.ZOEKEN]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie VERT.ZOEKEN|VERT.ZOEKEN]]</b>',<br>
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBAANTAL|DBAANTAL]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBAANTALC|DBAANTALC]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBSOM|DBSOM]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBPRODUCT|DBPRODUCT]]</b>',<br>
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBMAX|DBMAX]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBMIN|DBMIN]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBGEMIDDELDE|DBGEMIDDELDE]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBSTDEV|DBSTDEV]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBSTDEVP|DBSTDEVP]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBVAR|DBVAR]]</b>',
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBVARP|DBVARP]]</b>',<br>
+
'<b>[[Documentation/nl/How_Tos/Calc: functie DBLEZEN|DBLEZEN]]</b>'
+
  
 +
<br> [[Image:Nl regex howto 2.png|kiezen om reguliere expressies in functies van Calc te gebruiken]]
  
Of reguliere expressies worden gebruikt of niet wordt geselecteerd in het dialoogvenster Extra - Opties - OpenOffice.org Calc - Berekenen:
+
<br> Bijvoorbeeld: ''''=AANTAL.ALS(A1:A6;"r.d")'''' met "Reguliere expressies in formules mogelijk" geselecteerd zal de cellen in A1:A6 tellen die bevatten ''''rad'''' en ''''ROD''''.
  
 +
<br> Als aanvullend daarop "Zoekcriteria = en &lt;&gt; moeten op hele cellen toepasbaar zijn" ''niet'' is geselecteerd dan worden ''''Fred'''', ''''braderie'''', en ''''Ridicuul'''' ook meegeteld. Als die instelling ''wel'' is geselecteerd, dan kan het worden bereikt door de expressie als volgt te noteren: ''''=AANTAL.ALS(A1:A6;".*r.d.*")''''
  
[[Image:nl_regex_howto_2.png|kiezen om reguliere expressies in functies van Calc te gebruiken]]
+
<br> [[Image:NL regex howto 4.png|reguliere expressie in functie AANTAL.ALS]]  
  
 +
<br> Zoekacties met reguliere expressies ''binnen functies'' zijn <u>altijd ongevoelig voor hoofdletters</u>, ongeacht de instelling van het keuzevak "Hoofdletters/kleine letters" in het bovenstaande dialoogvenster - dus ''''rad'''' en ''''ROD'''' zullen altijd worden gevonden in het bovenstaande voorbeeld. Deze ongevoeligheid voor hoofdletters is ook van toepassing op de structuren ([:lower:]) en ([:upper:]) van reguliere expressies, die tekens overeen laten komen, ongeacht hoofd- of kleine letters. Zie [http://qa.openoffice.org/issues/show_bug.cgi?id=71000 issue 71000] voor enige achtergrondinformatie.
  
Bijvoorbeeld: ''''=AANTAL.ALS(A1:A6;"r.d")'''' met "Reguliere expressies in formules mogelijk" geselecteerd zal de cellen in A1:A6 tellen die bevatten ''''rad'''' en ''''ROD''''.
+
Reguliere expressies zullen niet werken in eenvoudige vergelijkingen. Bijvoorbeeld: ' '''A1="r.d"''' ' zal altijd '''ONWAAR''' teruggeven als A1 ''''rad'''' bevat, zelfs als reguliere expressies zijn ingeschakeld - het zal alleen '''WAAR''' teruggeven als A1 ''''r.d'''' bevat (''''r'''' dan een '''punt''' en dan ''''d''''). Indien u het gebruik van reguliere expressies wilt testen, gebruik dan de functie ''''AANTAL.ALS'''' - ''''AANTAL.ALS(A1; "r.d")'''' zal ''''1'''' of ''''0'''' teruggeven, geínterpreteerd als '''WAAR''' of '''ONWAAR''' in formules zoals ''''=ALS(AANTAL.ALS(A1; "r.d");"hoera"; "boo")''''
  
 +
Activeren van de instelling "Reguliere expressies in formules mogelijk" betekent dat alle bovenstaande functies een speciale teken voor reguliere expressies vereisen (zoals haakjes) voor gebruik binnen tekenreeksen in formules, die kunnen worden "escaped" met behulp van een vooraf gaande backslash, hoewel zij geen deel uitmaken van een reguliere expressie. Deze backslashes moeten later worden verwijderd als de instelling later wordt gedeactiveerd.
  
Als aanvullend daarop "Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn" ''niet'' is geselecteerd dan worden ''''Fred'''', ''''braderie'''', en ''''Ridicuul'''' ook meegeteld. Als die instelling ''wel'' is geselecteerd, dan kan het worden bereikt door de expressie als volgt te noteren: ''''=AANTAL.ALS(A1:A6;".*r.d.*")''''
+
Onthoud dat in OOo2.4 een ''wijziging van de instelling'' "Reguliere expressies in formules mogelijk" niet noodzakelijkerwijze wordt gereflecteerd in de resultaten, zelfs niet als een herberekening wordt geforceerd. Deze bug [http://www.openoffice.org/issues/show_bug.cgi?id=89047 89047] is niet van toepassing op OOo2.3 en is verholpen in OOo3.0.  
  
 +
== Reguliere expressies in Calc Zoeken &amp; vervangen  ==
  
[[Image:NL_regex_howto_4.png|reguliere expressie in functie AANTAL.ALS]]
+
Zoeken &amp; vervangen in Calc komt zeer overeen met Zoeken &amp; vervangen in Writer, zoals beschreven in de ''''[[NL/Documentation/How Tos/Reguliere expressies in Writer|HowTo voor reguliere expressies in Writer]]''''. De volgende punten zijn interessant voor gebruikers van Calc:
  
 +
<br>
  
Zoekacties met reguliere expressies ''binnen functies'' zijn <u>altijd ongevoelig voor hoofdletters</u>, ongeacht de instelling van het keuzevak "Hoofdletters/kleine letters" in het bovenstaande dialoogvenster - dus ''''rad'''' en ''''ROD'''' zullen altijd worden gevonden in het bovenstaande voorbeeld. Deze ongevoeligheid voor hoofdletters is ook van toepassing op de structuren ([:lower:]) en ([:upper:]) van reguliere expressies, die tekens overeen laten komen, ongeacht hoofd- of kleine letters. Zie [http://qa.openoffice.org/issues/show_bug.cgi?id=71000 issue 71000] voor enige achtergrondinformatie.
+
*Als een overeenkomst wordt gevonden, wordt de gehele cel geaccentueerd weergegeven, maar alleen de gevonden tekst zal worden vervangen. Zoeken naar, bijvoorbeeld, ''''rood'''' zal een cel accentueren die ''''roodbruine klei'''' bevat, en dat vervangen door niets zal de cel achterlaten met ''''bruine klei''''.
  
Reguliere expressies zullen niet werken in eenvoudige vergelijkingen. Bijvoorbeeld:
+
<br>  
' <b>A1="r.d"</b> ' zal altijd '''ONWAAR''' teruggeven als A1 '<b>rad</b>' bevat, zelfs als reguliere expressies zijn ingeschakeld - het zal alleen '''WAAR''' teruggeven als A1 '<b>r.d</b>' bevat ('<b>r</b>' dan een <b>punt</b> en dan '<b>d</b>'). Indien u het gebruik van reguliere expressies wilt testen, gebruik dan de functie '<b>AANTAL.ALS</b>' - '<b>AANTAL.ALS(A1; "r.d")</b>' zal '<b>1</b>' of '<b>0</b>' teruggeven, geínterpreteerd als '''WAAR''' of '''ONWAAR''' in formules zoals '<b>=ALS(AANTAL.ALS(A1; "r.d");"hoera"; "boo")</b>'
+
  
Activeren van de instelling "Reguliere expressies in formules mogelijk" betekent dat alle bovenstaande functies een speciale teken voor reguliere expressies vereisen (zoals haakjes) voor gebruik binnen tekenreeksen in formules, die kunnen worden "escaped" met behulp van een vooraf gaande backslash, hoewel zij geen deel uitmaken van een reguliere expressie. Deze backslashes moeten later worden verwijderd als de instelling later wordt gedeactiveerd.
+
*Indien Zoeken twee keer achter elkaar wordt gebruikt, zal, indien de tweede keer "Alleen huidige selectie" is geactiveerd, de tweede zoekactie ''alles'' van elke geselecteerde cel evalueren, ''niet'' alleen de gevonden tekenreeksen die er voor zorgden dat de cellen werden geselecteerd in de eerste zoekactie. Zoeken naar, bijvoorbeeld, ''''joh?n'''', en dan "Alleen huidige selectie" activeren en zoeken naar ''''sm.th'''', zal de cellen vinden die bevatten '''Jon Smith''' en '''Smythers, Johnathon'''.
  
Onthoud dat in OOo2.4 een ''wijziging van de instelling'' "Reguliere expressies in formules mogelijk" niet noodzakelijkerwijze wordt gereflecteerd in de resultaten, zelfs niet als een herberekening wordt geforceerd. Deze bug [http://www.openoffice.org/issues/show_bug.cgi?id=89047 89047] is niet va toepassing op OOo2.3 en is verholpen in OOo3.0.
+
<br>
  
== Reguliere expressies in Calc Zoeken & vervangen ==
+
*Indien een cel een hard regeleinde bevat (ingevoerd met Ctrl-Enter), kan die worden gevonden met ''''\n''''. Indien een cel bijvoorbeeld bevat ''''rode hard_regeleinde kelen'''' dan zal het zoeken naar ''''e\nk'''' en dat vervangen door niets de cel achterlaten met ''''rodelen''''.
  
Zoeken & vervangen in Calc komt zeer overeen met Zoeken & vervangen in Writer, zoals beschreven in de '<b>[[Documentation/nl/How_Tos/Reguliere expressies in Writer|HowTo voor reguliere expressies in Writer]]</b>'. De volgende punten zijn interessant voor gebruikers van Calc:
+
<br>  
  
 +
*Het harde regeleinde dient als markering van "einde van de tekst" zoals dat wordt begrepen door het speciale teken voor reguliere expressies ''''$'''' (als aanvulling natuurlijk op het einde van de tekst in de cel). Indien een cel bijvoorbeeld bevat ''''rode hard_regeleinde kelen'''' dan zal het zoeken naar ''''de$'''' en dat vervangen door ''''uze'''' de cel achterlaten met ''''reuze hard_regeleinde kelen''''. Onthoud dat met deze syntaxis het harde regeleinde niet wordt vervangen - het markeert eenvoudigweg het einde van de tekst.
  
* Als een overeenkomst wordt gevonden, wordt de gehele cel geaccentueerd weergegeven, maar alleen de gevonden tekst zal worden vervangen. Zoeken naar, bijvoorbeeld, '<b>rood</b>' zal een cel accentueren die '<b>roodbruine klei</b>' bevat, en dat vervangen door niets zal de cel achterlaten met '<b>bruine klei</b>'.
+
<br>  
  
 +
*Gebruiken van ''''\n'''' in het vak 'Vervangen door' zal dat vervangen door de letterlijke tekens ''''\n'''', niet door een hard regeleinde.
  
* Indien Zoeken twee keer achter elkaar wordt gebruikt, zal, indien de tweede keer "Alleen huidige selectie" is geactiveerd, de tweede zoekactie ''alles'' van elke geselecteerde cel evalueren, ''niet'' alleen de gevonden tekenreeksen die er voor zorgden dat de cellen werden geselecteerd in de eerste zoekactie. Zoeken naar, bijvoorbeeld, '<b>joh?n</b>', en dan "Alleen huidige selectie" activeren en zoeken naar '<b>sm.th</b>', zal de cellen vinden die bevatten '''Jon Smith''' en '''Smythers, Johnathon'''.
+
<br>  
  
 +
*Het dialoogvenster Zoeken &amp; vervangen heeft een optie om ''''Formules'''', ''''Waarden'''' of ''''Notities'''' te zoeken. Dit is van toepassing op elke zoekactie, niet alleen die welke reguliere expressies gebruiken. Zoeken met de optie ''''Formules'''' zou vinden ''''SOM'''' in een cel die de formule ''''=SOM(A1:A6)'''' bevat. Indien een cel tekst bevat in plats van een functie, zal de tekst nog steeds worden gevonden - zodat de eenvoudige tekst ''''OPSOMMING'''' in een cel ook een overeenkomst zal geven voor ''''SOM'''' bij gebruik van de optie ''''Formules''''.
  
* Indien een cel een hard regeleinde bevat (ingevoerd met Ctrl-Enter), kan die worden gevonden met '<b>\n</b>'. Indien een cel bijvoorbeeld bevat '<b>rode hard_regeleinde kelen</b>' dan zal het zoeken naar '<b>e\nk</b>' en dat vervangen door niets de cel achterlaten met '<b>rodelen</b>'.
+
<br>  
  
 +
*Zoeken naar de reguliere expressie ''''^$'''' zal geen lege cellen vinden. Dit is opzettelijk zo gedaan - het rationele is om problemen met de uitvoering te vermijden bij het selecteren van een groot aantal cellen. Onthoud dat lege cellen niet zullen worden gevonden, zelfs niet als u slechts binnen een selectie zoekt.
  
* Het harde regeleinde dient als markering van "einde van de tekst" zoals dat wordt begrepen door het speciale teken voor reguliere expressies '<b>$</b>' (als aanvulling natuurlijk op het einde van de tekst in de cel). Indien een cel bijvoorbeeld bevat '<b>rode hard_regeleinde kelen</b>' dan zal het zoeken naar '<b>de$</b>' en dat vervangen door '<b>uze</b>' de cel achterlaten met '<b>reuze hard_regeleinde kelen</b>'. Onthoud dat met deze syntaxis het harde regeleinde niet wordt vervangen - het markeert eenvoudigweg het einde van de tekst.
+
<br>  
  
 +
*Zoeken naar ''''.+'''' (of soortgelijk) en dat Vervangen door ''''&amp;'''' voert effectief de inhoud van cellen opnieuw in. Dit kan worden gebruikt om opmaak 'te strippen' die automatisch wordt toegepast door Calc (vaak nodig om gegeven 'te schonen' die werden geïmporteerd vanaf het klembord of slecht opgemaakte bestanden), bijvoorbeeld om tekst-tekenreeksen die bestaan uit cijfers, te converteren naar echte getallen (de cellen moeten eerst correct worden opgemaakt met 'getal'). De voorafgaande apostrofs, die Calc vertellen om de getallen als tekst te behandelen, worden verwijderd.
  
* Gebruiken van '<b>\n</b>' in het vak 'Vervangen door' zal dat vervangen door de letterlijke tekens '<b>\n</b>', niet door een hard regeleinde.
+
<br> {{PDL1}}
  
 
+
[[Category:Calc]] [[Category:NL/Documentation/How_Tos|Documentation/How_Tos]] [[fr:Documentation/FR/Expressions Regulieres dans Calc|fr:Documentation/FR/Expressions Regulieres dans Calc]] [[nl:NL/Documentation/How Tos/Reguliere expressies in Calc|nl:NL/Documentation/How Tos/Reguliere expressies in Calc]]
* Het dialoogvenster Zoeken & vervangen heeft een optie om '<b>Formules</b>', '<b>Waarden</b>' of '<b>Notities</b>' te zoeken. Dit is van toepassing op elke zoekactie, niet alleen die welke reguliere expressies gebruiken. Zoeken met de optie '<b>Formules</b>' zou vinden '<b>SOM</b>' in een cel die de formule '<b>=SOM(A1:A6)</b>' bevat. Indien een cel tekst bevat in plats van een functie, zal de tekst nog steeds worden gevonden - zodat de eenvoudige tekst '<b>OPSOMMING</b>' in een cel ook een overeenkomst zal geven voor '<b>SOM</b>' bij gebruik van de optie '<b>Formules</b>'.
+
 
+
 
+
* Zoeken naar de reguliere expressie '<b>^$</b>' zal geen lege cellen vinden. Dit is opzettelijk zo gedaan - het rationele is om problemen met de uitvoering te vermijden bij het selecteren van een groot aantal cellen. Onthoud dat lege cellen niet zullen worden gevonden, zelfs niet als u slechts binnen een selectie zoekt.
+
 
+
 
+
* Zoeken naar '<b>.+</b>' (of soortgelijk) en dat Vervangen door '<b>&</b>' voert effectief de inhoud van cellen opnieuw in. Dit kan worden gebruikt om opmaak 'te strippen' die automatisch wordt toegepast door Calc (vaak nodig om gegeven 'te schonen' die werden geïmporteerd vanaf het klembord of slecht opgemaakte bestanden), bijvoorbeeld om tekst-tekenreeksen die bestaan uit cijfers, te converteren naar echte getallen (de cellen moeten eerst correct worden opgemaakt met 'getal'). De voorafgaande apostrofs, die Calc vertellen om de getallen als tekst te behandelen, worden verwijderd.
+
 
+
 
+
{{PDL1}}
+
 
+
[[Category:Calc]]
+
[[Category:Documentation/How Tos]]
+
[[fr:Documentation/FR/Expressions_Regulieres_dans_Calc]]
+
[[nl:Documentation/nl/How_Tos/Reguliere_expressies_in_Calc]]
+

Revision as of 17:35, 8 December 2009


Introductie

Simpel gezegd zijn reguliere expressies een slimme manier om tekst te vinden.


Typisch gebruik voor reguliere expressies is het vinden van tekst; om bijvoorbeeld alle cellen in uw werkblad te zoeken die mannelijk of vrouwelijk bevatten, zou u kunnen zoeken met behulp van één enkele reguliere expressie.


Reguliere expressies in Calc en Writer

Reguliere expressies zijn als volgt beschikbaar in Calc:

  • Bewerken - dialoogvenster Zoeken & vervangen
  • Gegevens - Filter - Standaardfilter & Speciaal filter
  • Bepaalde functies, zoals SOM.ALS, VERT.ZOEKEN

De beste manier om reguliere expressies in Calc te leren kennen is om te beginnen te begrijpen hoe zij kunnen worden gebruikt in Zoeken en vervangen. Dit wordt behandeld door 'HowTo voor reguliere expressies in Writer', dat u zou moeten lezen.


In Calc worden reguliere expressies afzonderlijk toegepast op elke cel. (U zult zien dat reguliere expressies afzonderlijk worden toegepast op elke alinea in Writer.) Dus een zoekactie naar 'r.d' zal overeenkomen met 'rad' in cel A1 maar zal niet overeenkomen met 'r' in cel A2 met 'd' (of 'ed') in cel A3. (De reguliere expressie 'r.d' betekent 'probeer een overeenkomst te vinden voor 'r', gevolgd door een ander teken, gevolgd door 'd' ').

Reguliere expressies in functies van Calc

Er zijn een aantal functies in Calc die het gebruik van reguliere expressies toestaan:
'SOM.ALS', 'AANTAL.ALS',
'VERGELIJKEN', 'VIND.SPEC', 'ZOEKEN', 'HORIZ.ZOEKEN', 'VERT.ZOEKEN',
'DBAANTAL', 'DBAANTALC', 'DBSOM', 'DBPRODUCT',
'DBMAX', 'DBMIN', 'DBGEMIDDELDE', 'DBSTDEV', 'DBSTDEVP', 'DBVAR', 'DBVARP',
'DBLEZEN'


Of reguliere expressies worden gebruikt of niet wordt geselecteerd in het dialoogvenster Extra - Opties - OpenOffice.org Calc - Berekenen:


kiezen om reguliere expressies in functies van Calc te gebruiken


Bijvoorbeeld: '=AANTAL.ALS(A1:A6;"r.d")' met "Reguliere expressies in formules mogelijk" geselecteerd zal de cellen in A1:A6 tellen die bevatten 'rad' en 'ROD'.


Als aanvullend daarop "Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn" niet is geselecteerd dan worden 'Fred', 'braderie', en 'Ridicuul' ook meegeteld. Als die instelling wel is geselecteerd, dan kan het worden bereikt door de expressie als volgt te noteren: '=AANTAL.ALS(A1:A6;".*r.d.*")'


reguliere expressie in functie AANTAL.ALS


Zoekacties met reguliere expressies binnen functies zijn altijd ongevoelig voor hoofdletters, ongeacht de instelling van het keuzevak "Hoofdletters/kleine letters" in het bovenstaande dialoogvenster - dus 'rad' en 'ROD' zullen altijd worden gevonden in het bovenstaande voorbeeld. Deze ongevoeligheid voor hoofdletters is ook van toepassing op de structuren ([:lower:]) en ([:upper:]) van reguliere expressies, die tekens overeen laten komen, ongeacht hoofd- of kleine letters. Zie issue 71000 voor enige achtergrondinformatie.

Reguliere expressies zullen niet werken in eenvoudige vergelijkingen. Bijvoorbeeld: ' A1="r.d" ' zal altijd ONWAAR teruggeven als A1 'rad' bevat, zelfs als reguliere expressies zijn ingeschakeld - het zal alleen WAAR teruggeven als A1 'r.d' bevat ('r' dan een punt en dan 'd'). Indien u het gebruik van reguliere expressies wilt testen, gebruik dan de functie 'AANTAL.ALS' - 'AANTAL.ALS(A1; "r.d")' zal '1' of '0' teruggeven, geínterpreteerd als WAAR of ONWAAR in formules zoals '=ALS(AANTAL.ALS(A1; "r.d");"hoera"; "boo")'

Activeren van de instelling "Reguliere expressies in formules mogelijk" betekent dat alle bovenstaande functies een speciale teken voor reguliere expressies vereisen (zoals haakjes) voor gebruik binnen tekenreeksen in formules, die kunnen worden "escaped" met behulp van een vooraf gaande backslash, hoewel zij geen deel uitmaken van een reguliere expressie. Deze backslashes moeten later worden verwijderd als de instelling later wordt gedeactiveerd.

Onthoud dat in OOo2.4 een wijziging van de instelling "Reguliere expressies in formules mogelijk" niet noodzakelijkerwijze wordt gereflecteerd in de resultaten, zelfs niet als een herberekening wordt geforceerd. Deze bug 89047 is niet van toepassing op OOo2.3 en is verholpen in OOo3.0.

Reguliere expressies in Calc Zoeken & vervangen

Zoeken & vervangen in Calc komt zeer overeen met Zoeken & vervangen in Writer, zoals beschreven in de 'HowTo voor reguliere expressies in Writer'. De volgende punten zijn interessant voor gebruikers van Calc:


  • Als een overeenkomst wordt gevonden, wordt de gehele cel geaccentueerd weergegeven, maar alleen de gevonden tekst zal worden vervangen. Zoeken naar, bijvoorbeeld, 'rood' zal een cel accentueren die 'roodbruine klei' bevat, en dat vervangen door niets zal de cel achterlaten met 'bruine klei'.


  • Indien Zoeken twee keer achter elkaar wordt gebruikt, zal, indien de tweede keer "Alleen huidige selectie" is geactiveerd, de tweede zoekactie alles van elke geselecteerde cel evalueren, niet alleen de gevonden tekenreeksen die er voor zorgden dat de cellen werden geselecteerd in de eerste zoekactie. Zoeken naar, bijvoorbeeld, 'joh?n', en dan "Alleen huidige selectie" activeren en zoeken naar 'sm.th', zal de cellen vinden die bevatten Jon Smith en Smythers, Johnathon.


  • Indien een cel een hard regeleinde bevat (ingevoerd met Ctrl-Enter), kan die worden gevonden met '\n'. Indien een cel bijvoorbeeld bevat 'rode hard_regeleinde kelen' dan zal het zoeken naar 'e\nk' en dat vervangen door niets de cel achterlaten met 'rodelen'.


  • Het harde regeleinde dient als markering van "einde van de tekst" zoals dat wordt begrepen door het speciale teken voor reguliere expressies '$' (als aanvulling natuurlijk op het einde van de tekst in de cel). Indien een cel bijvoorbeeld bevat 'rode hard_regeleinde kelen' dan zal het zoeken naar 'de$' en dat vervangen door 'uze' de cel achterlaten met 'reuze hard_regeleinde kelen'. Onthoud dat met deze syntaxis het harde regeleinde niet wordt vervangen - het markeert eenvoudigweg het einde van de tekst.


  • Gebruiken van '\n' in het vak 'Vervangen door' zal dat vervangen door de letterlijke tekens '\n', niet door een hard regeleinde.


  • Het dialoogvenster Zoeken & vervangen heeft een optie om 'Formules', 'Waarden' of 'Notities' te zoeken. Dit is van toepassing op elke zoekactie, niet alleen die welke reguliere expressies gebruiken. Zoeken met de optie 'Formules' zou vinden 'SOM' in een cel die de formule '=SOM(A1:A6)' bevat. Indien een cel tekst bevat in plats van een functie, zal de tekst nog steeds worden gevonden - zodat de eenvoudige tekst 'OPSOMMING' in een cel ook een overeenkomst zal geven voor 'SOM' bij gebruik van de optie 'Formules'.


  • Zoeken naar de reguliere expressie '^$' zal geen lege cellen vinden. Dit is opzettelijk zo gedaan - het rationele is om problemen met de uitvoering te vermijden bij het selecteren van een groot aantal cellen. Onthoud dat lege cellen niet zullen worden gevonden, zelfs niet als u slechts binnen een selectie zoekt.


  • Zoeken naar '.+' (of soortgelijk) en dat Vervangen door '&' voert effectief de inhoud van cellen opnieuw in. Dit kan worden gebruikt om opmaak 'te strippen' die automatisch wordt toegepast door Calc (vaak nodig om gegeven 'te schonen' die werden geïmporteerd vanaf het klembord of slecht opgemaakte bestanden), bijvoorbeeld om tekst-tekenreeksen die bestaan uit cijfers, te converteren naar echte getallen (de cellen moeten eerst correct worden opgemaakt met 'getal'). De voorafgaande apostrofs, die Calc vertellen om de getallen als tekst te behandelen, worden verwijderd.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages