Documentatie/Calc-functies/REGEX

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Documentation/Calc Functions/REGEX and the translation is 100% complete.
Other languages:
English • ‎Nederlands



Functienaam:

REGEX

Categorie:

Tekst

Samenvatting:

Vergelijkt een tekenreeks met een reguliere expressie en extraheert of vervangt de overeenkomende tekst, afhankelijk van de argumentinstellingen.

Syntaxis:

REGEX(Tekst; Expressie[; [Vervanging][; Kenteken of voorkomen]])

Retourneert:

Retourneert één van de volgende uitkomsten, afhankelijk van de argumentwaarden. Zie het gedeelte #Aanvullende details: hieronder voor meer informatie over het voorkomen van elk retourtype (met voorbeelden).

  1. Een kopie van een subtekenreeks die is geëxtraheerd uit de originele tekst.
  2. Een kopie van de originele tekst, aangepast door één of meerdere overeenkomsten te vervangen.
  3. Een kopie van de originele tekst, ongewijzigd.
  4. Een waarde niet beschikbaar fout (#N/B).

Argumenten:

Tekst is een tekenreeks (tussen aanhalingstekens) of een verwijzing naar een cel die een tekenreeks bevat, dat wil zeggen de originele tekst waarop Expressie moet worden toegepast.

Expressie is een tekenreeks (tussen aanhalingstekens) of een verwijzing naar een cel die een tekenreeks bevat, dat wil zeggen de reguliere expressie die moet worden toegepast op Tekst.

Vervanging is een tekenreeks (tussen aanhalingstekens) of een verwijzing naar een cel die een tekenreeks bevat, dat wil zeggen de vervangende tekst die moet worden gebruikt. Het instellen van Vervanging op de lege tekenreeks kan worden gebruikt als een mechanisme om overeenkomende tekens te verwijderen.

Kenteken of voorkomen is één van de volgende opties:

  1. Een tekenreeks bestaande uit een enkele kleine letter "g" of een verwijzing naar een cel die een dergelijke tekenreeks bevat. Het "g"-teken wordt gebruikt om globale vervanging te selecteren, zodat elke vervanging op alle overeenkomsten wordt toegepast.
  2. Een niet-negatief geheel getal of een verwijzing naar een cel die zo'n geheel getal bevat, dat aangeeft welke specifieke overeenkomst moet worden gebruikt.
  • Als Expressie geen geldige reguliere expressie is, dan retourneert REGEX als fout Ongeldig argument (Fout:502).
  • Als Kenteken of voorkomen een niet-numerieke tekenreeks is die een ander teken dan een enkele kleine letter "g" bevat, retourneert REGEX als fout Ongeldig argument (Fout:502).
  • Als Kenteken of voorkomen een negatieve numerieke waarde is, dan retourneer REGEX als fout Ongeldig argument (Fout:502).
  • Als Kenteken of voorkomen een niet-negatieve, niet-gehele numerieke waarde is, dan gebruikt REGEX zijn minimumwaarde.
  • Als Vervanging is weggelaten en Kenteken of voorkomen is ingesteld op 'g', gedraagt REGEX zich alsof zowel Vervanging als Kenteken of voorkomen werden weggelaten.

Aanvullende details:

Details specifiek voor de functie REGEX

  • De werking van de REGEX-functie is niet afhankelijk van de optie die momenteel is geselecteerd in het gedeelteFormule-jokertekens in het dialoogvenster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen op macOS).
  • De oorspronkelijke standaard is dat REGEX hoofdlettergevoelige overeenkomsten gebruikt, maar dit kan worden gewijzigd met kentekens in de ICU-reguliere expressie. Neem bijvoorbeeld "(?i)" op in de reguliere expressie om te veranderen in een niet-hoofdlettergevoelige overeenkomst.
  • De originele tekenreeks die is doorgegeven in het argument Tekst wordt niet beïnvloed door vervangingen die door REGEX zijn gemaakt - wijzigingen worden alleen weergegeven in de geretourneerde tekenreeks.
  • Het kan handig zijn om REGEX te beschouwen als werkend in één van de vijf verschillende "modi", afhankelijk van de argumenten die aan de functie zijn doorgegeven. Deze modi zijn als volgt:
  1. REGEX(Text; Expression) extraheert de eerste match van Expression in Text. Dit eenvoudige formulier kan handig zijn om te controleren of een tekenreeks overeenkomt met een vooraf gedefinieerd patroon (zoals telefoonnummers, e-mailadressen, postcodes, enz.).
    • De formule =REGEX("LibreOffice Calc"; ".c") extraheert het eerste voorkomen van een kleine letter "c" voorafgegaan door een ander teken en retourneert de tekenreeks "ic".
    • De formule =REGEX("LibreOffice Calc"; "Z") vindt geen overeenkomst en retourneert #N/A.
  2. REGEX('Tekst; Uitdrukking; Vervanging) vervangt de eerste overeenkomst van Uitdrukking in Tekst met 'Vervanging. Als er een overeenkomst is, retourneert REGEX de gewijzigde versie van Tekst; als er geen overeenkomst is, wordt Tekst ongewijzigd geretourneerd.
    • De formule =REGEX("Initialiseer nieuwe variabelen en optimaliseer uw code."; "ise"; "ize") geeft als resultaat "Initializeer nieuwe variabelen en optimaliseer uw code.".
    • De formule =REGEX("LibreOffice Calc"; "Z"; "?") vindt geen overeenkomst en retourneert de tekenreeks "LibreOffice Calc" ongewijzigd.
  3. REGEX(Tekst; Uitdrukking; Vervanging; "g") vervangt alle overeenkomsten van Uitdrukking in Tekst met Vervanging. Als er een overeenkomst is, retourneert REGEX de gewijzigde versie van Tekst; als er geen overeenkomst is, wordt Tekst ongewijzigd geretourneerd.
    • De formule =REGEX("Initialiseer nieuwe variabelen en optimaliseer uw code."; "ise"; "ize"; "g") geeft als resultaat "Initializeer nieuwe variabelen en optimalizeer uw code.".
    • De formule =REGEX("LibreOffice Calc"; "Z"; "?"; "g") vindt geen overeenkomst en retourneert de tekenreeks "LibreOffice Calc" ongewijzigd.
  4. REGEX('Text; Expression; ; Occurrence) extraheert de nde match van Expression in ' Tekst (waarbij n wordt gegeven door de waarde van het Voorkomen argument).
    • De formule =REGEX("LibreOffice Calc"; ".c"; ; 1) extraheert het eerste voorkomen van een kleine letter "c" voorafgegaan door een ander teken en retourneert de tekenreeks "ic".
    • De formule =REGEX("LibreOffice Calc"; ".c"; ; 2) extraheert het tweede voorkomen van een kleine letter "c" voorafgegaan door een ander teken en retourneert de tekenreeks "lc".
    • De formule =REGEX("LibreOffice Calc"; ".c"; ; 3) vindt geen overeenkomst en retourneert #N/A.
    • De waarde van 0 voor Voorkomen is een speciaal geval, waarvoor REGEX ongewijzigd Tekst retourneert.
  5. REGEX('Tekst; Expressie; Vervanging; Voorkomen) vervangt de nde overeenkomst van 'Expressie in Tekst met Vervanging (waarbij n wordt gegeven door de waarde van het Voorkomen argument). Als er een overeenkomst is, retourneert REGEX de gewijzigde versie van Tekst; als er geen overeenkomst is, wordt Tekst ongewijzigd geretourneerd.
    • De formule =REGEX("Initialiseer nieuwe variabelen en optimaliseer uw code."; "ise"; "ize"; 1) geeft als resultaat "Initializeer nieuwe variabelen en optimaliseer uw code.".
    • De formule =REGEX("Initialiseer nieuwe variabelen en optimaliseer uw code."; "ise"; "ize"; 2) geeft als resultaat "Initialiseer nieuwe variabelen en optimalizeer uw code.".
    • De formule =REGEX("Initialiseer nieuwe variabelen en optimaliseer uw code."; "ise"; "ize"; 3) geeft de string "Initialiseer nieuwe variabelen en optimaliseer uw code." ongewijzigd.
    • De waarde van 0 voor Voorkomen is een speciaal geval, waarvoor REGEX ongewijzigd Tekst retourneert.



Voorbeelden:

Formule Beschrijving Retourneert
=REGEX("123456ABCDEF"; "[:digit:]"; "Z") De functie geeft "Z23456ABCDEF" terug, waarbij het eerste overeenkomende cijfer is vervangen met een "Z". Z23456ABCDEF
=REGEX(D1; D2; D3; D4) waar de cellen D1 tm D4 resp. de inhoud "123456ABCDEF", "[:digit:]", "Z" en "g" hebben. De functie geeft "ZZZZZZABCDEF" terug, alle cijfers zijn vervangen door een "Z". ZZZZZZABCDEF
=REGEX("123456ABCDEF"; "[126]"; ""; "g") De functie geeft "345ABCDEF" terug, alle voorkomens van "1", "2" en "6" zijn verwijderd uit de tekst 345ABCDEF
=REGEX("axbxcxd"; ".x"; ; 2) De functie geeft "bx" terug, de tweede match met ".x". bx
=REGEX("axbxcxd"; "(.)x"; "$1y"; 2) De functie geeft "axbycxd" terug, de tweede match van "(.)x" (hier: "bx") is vervangen met de opgesloten groep van een karakter ("b") gevolgd met een "y". axbycxd
=REGEX("LibreOffice Calc"; "libreoffice") Hier retourneert de functie #N/A omdat de overeenkomst hoofdlettergevoelig is. #N/A
=REGEX("LibreOffice Calc"; "(?i)libreoffice") Er wordt een match gevonden en er wordt "LibreOffice" terug gegeven, omdat de (?i) aangeeft dat de match niet hoofdletterafhankelijk is. LibreOffice

Gerelateerde LibreOffice-functies:

Geen

ODF standaard:

Geen

Gelijkwaardige Excel-functies:

Geen