CountRegEx() retourneert het aantal keren dat het opgegeven reguliere expressiepatroom voorkomt in de tekst van de invoertekenreeks. Als er geen overeenkomst wordt gevonden, wordt 0 geretourneerd.
Deze functie voert regexbewerkingen uit die hoofdlettergevoelig zijn. U kunt eventueel ook de variant CountRegExI() gebruiken om hoofdletteronafhankelijke regexbewerkingen uit te voeren.
Syntaxis:
CountRegEx
(text, regex)
Retourgegevenstypen: numeriek
Argumenten
Argument
Beschrijving
text
De tekst van de invoertekenreeks waarin u wilt zoeken naar een reguliere expressie.
regex
Het reguliere expressiepatroon om naar te zoeken.
Voorbeelden van functies
Voorbeeld
Resultaat
CountRegEx('abc123','[a-z]')
Retourneert 3.
CountRegEx('abc123','[a-z][0-9]')
Retourneert 1.
CountRegEx('abc123','[0-9]')
Retourneert 3.
CountRegEx('ABC','[a-z]{3}')
Retourneert 0.
CountRegExI('ABC','[a-z]{3}')
Retourneert 1. Omdat de variant CountRegExI() wordt gebruikt, zijn zoekopdrachten in tekst niet hoofdlettergevoelig.
Wanneer gebruiken
Voorbeelden van gebruiksscenario's voor CountRegEx() zijn onder andere:
Het tellen van het aantal keren dat een bepaald tekstpatroon in een tekenreeks voorkomt. U kunt bijvoorbeeld zoeken naar voorbeelden van e-mailadressen, telefoonnummers en andere informatie in documenten en e-mailberichten.
Valideren of gegevens voldoen aan een specifieke syntaxisvereiste. U kunt bijvoorbeeld fouten bij het invoeren van gegevens identificeren.
Voorbeeld 1 - load-script om geldige jaarbereiken te tellen
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een container met de naam Vehicles die een lijst met voertuigen bevat, samen met de staat en het modeljaar van elk voertuig.
Voor elke record in Vehicles, een berekening om te bepalen of het jaarbereik voor het voertuig voldoet aan de verwachte syntaxis. Geldige jaarbereiken zijn 1990, 2000, 2010 en 2020. Deze berekening wordt uitgevoerd met de functie CountRegEx().
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
Vehicle_ID
Valid_Year_Data
Resultatentabel
Vehicle_ID
Valid_Year_Data
1
0
2
1
3
1
4
0
5
1
6
1
7
0
8
1
9
0
10
1
U kunt ook een KPI aan het werkblad toevoegen en deze meting toevoegen:
Sum(Valid_Year_Data)
Dit diagram toont het totale aantal records met geldige Model_YearRange waarden.
InformatieDe functie MatchRegEx() is ook nuttig voor dit soort validatiescenario's.
Voorbeeld 2 - load-script om het aantal e-mailadressen in teksttekenreeksen te tellen
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een container met de naam Employees met gegevens over de werknemers van een bedrijf. Alle e-mailadressen voor elke werknemer staan in een enkele tekenreeks.
Het maken van een veld, NoOfEmails, om te berekenen hoeveel e-mailadressen de invoertekenreeks voor elke werknemer bevat.
Voorbeeld 3 - diagramuitdrukking om exemplaren van een tekenreeks te tellen
Overzicht
Open de Editor voor laden van gegevens en voeg het volgende load-script toe aan een nieuwe sectie.
Het load-script bevat de tekst van een aantal bedrijfscorrespondenties die naar werknemers van een organisatie zijn gestuurd. De gegevens zijn al ontdaan van alle persoonlijk identificeerbare informatie (PII), behalve de bedrijfsnaam en het e-mailadres dat elke correspondentie heeft verzonden. De inhoud van elk bericht is samengevoegd tot een enkele doorlopende tekenreeks. Met andere woorden, alle opmaak- en newline-tekens zijn verwijderd.
Onze vereisten:
Identificeer welke berichten een tekenreeks bevatten die het e-mailadres TestCompanyNameCorrespondence@test.com bevat, samen met een specifieke inleiding tot dit adres die aangeeft dat dit de afzender was.
We willen flexibiliteit in welke introducties we kunnen identificeren, maar we willen ook een aantal duidelijke beperkingen hebben. De inleidingen Sender en Sent by worden beide als geldig beschouwd. Om dit doel te bereiken, kunnen regexpatronen worden gebruikt.
Hoofdlettergevoeligheid van e-mailadressen speelt geen rol. Daarom moet de zoekopdracht hoofdletterongevoelig zijn.
Load-script
Correspondences:
Load * Inline [
ID|MessageBody
1|Sent by-- TestCompanyNameCorrespondence@test.com Good morning TestCompanyName team! I hope you are all well. I am just reaching out about the fabulous benefits package we launched just year. Our goal is to take a poll of what you all think. Can you please rate the new options from 1-10 in a response to this email, by this Tuesday? Thank you!
2|Sender: TestCompanyNameIT@test.com Did you know you can access our IT portal anytime, from any of your company devices? It's true! Reach out to your team lead to learn more.
3|Sender: TESTCOMPANYNAMECORRESPONDENCE@test.COM URGENT: This is a message to inform employees of an ongoing issue with our local branch. The branch will be closed until further notice. Thank you
4|Sender: TestCompanyNameVolunteering@test.com Dear team! We are looking for volunteers to help with this year's charity event! We need 40 volunteers to help with the event. If you are interested, please send an email to your direct supervisor. Thanks, TestCompanyName team members, for helping make the world a better place!
5|Sender is TestCompanyNameCorrespondence@test.com Hi folks, it's time to announce the annual TestCompanyName staff party! The party will be taking place at the office this year. Please make sure to RSVP, and we hope to see you there! Sincerely, the TestCompanyName management team
] (delimiter is |);
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
Stel in de eigenschappen van de meting de functie Totalen in op Sum. Dit configureert de totalenrij bovenaan de tabel om het totale aantal records te tellen die bijdragen aan de telling.
De meting telt het aantal overeenkomsten voor het gespecificeerde regexpatroon binnen de berichtinhoud. In het regexpatroon geeft .* een willekeurig aantal tekens aan, behalve newline-tekens. Het patroon houdt ook rekening met variatie in de manier waarop het e-mailadres wordt ingevoerd: zowel Sender als Sent by zijn geldige overeenkomsten. De CountRegExI() variant van de functie zorgt voor hoofdletterongevoelige zoekopdrachten.
Sent by-- TestCompanyNameCorrespondence@test.com Good morning TestCompanyName team! I hope you are all well. I am just reaching out about the fabulous benefits package we launched just year. Our goal is to take a poll of what you all think. Can you please rate the new options from 1-10 in a response to this email, by this Tuesday? Thank you!
1
2
Sender: TestCompanyNameIT@test.com Did you know you can access our IT portal anytime, from any of your company devices? It's true! Reach out to your team lead to learn more.
0
3
Sender: TESTCOMPANYNAMECORRESPONDENCE@TEST.COM URGENT: This is a message to inform employees of an ongoing issue with our local branch. The branch will be closed until further notice. Thank you
1
4
Sender: TestCompanyNameVolunteering@test.com Dear team! We are looking for volunteers to help with this year's charity event! We need 40 volunteers to help with the event. If you are interested, please send an email to your direct supervisor. Thanks, TestCompanyName team members, for helping make the world a better place!
0
5
Sender is TestCompanyNameCorrespondence@test.com Hi folks, it's time to announce the annual TestCompanyName staff party! The party will be taking place at the office this year. Please make sure to RSVP, and we hope to see you there! Sincerely, the TestCompanyName management team
1
In de vijf berichten zijn er drie die overeenkomen met het gespecificeerde regexpatroon. Elk bericht bevat één overeenkomst.
InformatieDe functie MatchRegEx() is ook nuttig voor dit soort validatiescenario's.
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!