Reguliere expressies in Calc

From Apache OpenOffice Wiki
Jump to: navigation, search


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 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 "escapet" met behulp van een vooraf gaande backslash, hoewel ze 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 Issue 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 gegevens '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