CountRegEx() returnerar antalet förekomster av det angivna reguljära uttrycksmönstret i texten i indatasträngen. Om det inte blir någon träff returneras 0.
Den här funktionen utför regexoperationer som är skiftlägeskänsliga. Alternativt kan du använda varianten CountRegExI() för att utföra skiftlägesokänsliga regexoperationer.
Syntax:
CountRegEx
(text, regex)
Returnerad datatyp: numeriska
Argument
Argument
Beskrivning
text
Indatasträngens text inom vilken du vill söka efter ett reguljärt uttryck.
regex
Det reguljära uttrycksmönstret som ska sökas efter.
Exempel på funktioner
Exempel
Resultat
CountRegEx('abc123','[a-z]')
Returnerar 3.
CountRegEx('abc123','[a-z][0-9]')
Returnerar 1.
CountRegEx('abc123','[0-9]')
Returnerar 3.
CountRegEx('ABC','[a-z]{3}')
Returnerar 0.
CountRegExI('ABC','[a-z]{3}')
Returnerar 1. Eftersom CountRegExI()-varianten används är textsökningar inte skiftlägeskänsliga.
Användning
Exempel på användningsområden för CountRegEx() är:
Räknar antalet gånger ett visst textmönster förekommer i en sträng. Du kan t.ex. söka efter förekomster av e-postadresser, telefonnummer och annan information i dokument och e-postmeddelanden.
Validering av huruvida data uppfyller ett specifikt syntaxkrav. Du kan till exempel identifiera förekomsten av fel vid datainmatning.
Exempel 1 – laddningsskript för att räkna giltiga årsintervall
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En tabell med namnet Vehicles som innehåller en lista över fordon, tillsammans med skick och årsmodell för varje fordon.
För varje post i Vehicles görs en beräkning för att avgöra om årsintervallet för fordonet uppfyller den förväntade syntaxen. Giltiga årsintervall är bland annat 1990-, 2000-, 2010- och 2020-talet. Denna beräkning utförs med hjälp av funktionen CountRegEx().
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
Vehicle_ID
Valid_Year_Data
Resultattabell
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
Du kan också lägga till en KPI på arket och lägga till detta mått:
Sum(Valid_Year_Data)
Detta diagram visar det totala antalet poster med giltiga Model_YearRange-värden.
Anteckning om informationFunktionen MatchRegEx() är också användbar för den här typen av valideringsanvändningsfall.
Exempel 2 – laddningsskript för att räkna antalet e-postadresser i textsträngar
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datatabell med namnet Employees som innehåller uppgifter om ett företags anställda. Alla e-postadresser för varje anställd behålls i en enda sträng.
Skapandet av ett fält, NoOfEmails, för att beräkna hur många e-postadresser som finns i indatasträngen för varje anställd.
Exempel 3 – diagramuttryck för att räkna förekomster av sträng
Översikt
Öppna Skriptredigeraren och lägg till följande laddningsskript till ett nytt delavsnitt.
Laddningsskriptet innehåller texten från ett antal företagskorrespondenser som skickades ut till anställda i en organisation. Datan har redan rensats från all personliga identitetsuppgifter (PII), förutom företagsnamnet och den e-postadress som skickade varje korrespondens. Texten i varje meddelande har sammanfattats till en enda sammanhängande sträng. Med andra ord har all formatering och alla tecken för nya rader tagits bort.
Våra krav:
Identifiera vilka meddelanden som innehåller en sträng som innehåller e-postadressen TestCompanyNameCorrespondence@test.com, tillsammans med en specifik introduktion till denna adress som indikerar att den var avsändaren.
Vi vill ha flexibilitet när det gäller vilka introduktioner som ska identifieras, men fortfarande också ha vissa bestämda begränsningar. Introduktionerna Sender och Sent by anses båda vara giltiga. För att uppnå detta mål kan regex-mönster användas.
E-postadressers känslighet för versaler och gemener är inte en faktor. Därför ska sökningen vara skiftlägesokänslig.
Laddningsskript
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 |);
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
I måttegenskaperna ställer du in Totalfunktionen till Sum. Detta konfigurerar totalraden längst upp i tabellen så att det totala antalet poster som bidrar till räkningen räknas.
Måttet räknar antalet matchningar för det angivna regex-mönstret i meddelandets innehåll. I regexmönstret anger .* valfritt antal av alla tecken utom tecken för ny rad. Mönstret tar också hänsyn till variationen i hur e-postadressen introduceras: både Sender och Sent by är giltiga matchningar. CountRegExI()-varianten av funktionen säkerställer sökningar utan skiftlägeskänslighet.
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
Av de fem meddelandena är det tre som matchar det angivna regexmönstret. Varje meddelande innehåller en matchning.
Anteckning om informationFunktionen MatchRegEx() är också användbar för den här typen av valideringsanvändningsfall.
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!