Documentatie/Calc-functies/REGEX

    From The Document Foundation Wiki
    This page is a translated version of the page Documentation/Calc Functions/REGEX and the translation is 100% complete.
    Other languages:


    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 functie REGEX 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(Tekst; Expressie) extraheert de eerste match van Expressie in Tekst. 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/B.
    2. REGEX('Tekst; Expressie; Vervanging) vervangt de eerste overeenkomst van Expressie 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 "Initialiseer 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; Expressie; Vervanging; "g") vervangt alle overeenkomsten van Expressie 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 "Initialiseer nieuwe variabelen en optimaliseer uw code.".
      • De formule =REGEX("LibreOffice Calc"; "Z"; "?"; "g") vindt geen overeenkomst en retourneert de tekenreeks "LibreOffice Calc" ongewijzigd.
    4. REGEX(Tekst; Expressie; ; Occurrence) extraheert de nde match van Expressie 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/B.
      • 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 "Initialiseer 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.


    Algemene informatie over de reguliere expressies van Calc

    Note pin.svg

    NB:
    Voor het gemak wordt de informatie in dit subgedeelte herhaald op alle pagina's die functies beschrijven die reguliere expressies beschrijven.

    • Een reguliere expressie is een reeks tekens die een tekstpatroon definieert dat moet worden vergeleken. Meer gedetailleerde, algemene achtergrondinformatie is te vinden op Wikipedia's Reguliere expressies pagina.
    • Reguliere expressies worden veel gebruikt in veel domeinen en er zijn meerdere reguliere expressieprocessors beschikbaar. Calc gebruikt het open source Regular Expressions-pakket van de International Components for Unicode (ICU), zie hun Regular Expressions documentatie voor meer details, inclusief een volledige definitie van de syntaxis voor ICU Reguliere Expressies.
    • Bovendien biedt het LibreOffice Help-systeem een lijst met reguliere expressies op hoog niveau.
    • De reguliere expressie-engine van Calc ondersteunt genummerde capturegroepen, waarmee subbereiken binnen een overeenkomst kunnen worden geïdentificeerd en gebruikt in vervangende tekst. Haakjes worden gebruikt om componenten van een reguliere expressie te groeperen en een genummerde capture-groep te maken. Om een capture-groep in een vervangende tekst in te voegen, gebruikt u het formulier "$n", waarbij n het nummer van de capture-groep is.

    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/B. omdat de overeenkomst hoofdlettergevoelig is. #N/B
    =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

    Gerelateerde (of gelijkwaardige) Excel-functies:

    Geen