MatchRegEx() jämför en indatasträng (text) med ett eller flera reguljära uttryck (regex). Den returnerar den numeriska platsen för de reguljära uttrycksmönster som matchar. Returnerar ett matchningssvar endast om utvärderingen av det reguljära uttrycket matchar hela textinmatningen. Om inga matchningar hittas returnerar funktionen 0.
Den här funktionen utför regexoperationer som är skiftlägeskänsliga. Alternativt kan du använda varianten MatchRegExI() för att utföra skiftlägesokänsliga regexoperationer.
Syntax:
MatchRegEx
(text, regex1 [ , regex2,...regexN])
Returnerad datatyp: heltal
Argument
Argument
Beskrivning
text
Indatasträngens text till vilken du vill matcha ett eller flera reguljärt uttryck. För att en matchning ska ske måste denna indatasträng vara en exakt matchning med regex mönstret.
regex
Det reguljära uttryck som ska försöka matcha indatasträngen. Du kan ange mer än ett reguljärt uttryck i ett och samma uttryck, separerade som efterföljande argument.
Exempel på funktioner
Exempel
Resultat
MatchRegEx('testSample','test')
Returnerar 0. Funktionen returnerar endast ett matchningssvar när det finns en exakt matchning mellan text och regex mönstret. Även om testSample innehåller test, innehåller den annan text (Sample), vilket förhindrar en exakt matchning.
Returnerar 3. Det tredje regexmönstret är det första som matchar datan.
MatchRegEx('ABC','[abc]+','[123]')
Returnerar 0, eftersom MatchRegEx() är skiftlägeskänsligt.
MatchRegExI('ABC','[abc]+','[123]')
Returnerar 1. Den skiftlägesokänsliga varianten av funktionen, MatchRegExI(), används.
När ska du använda MatchRegEx
Användningsfall för denna funktion inkluderar:
Validering av text för att uppfylla formaterings- och efterlevnadsstandarder och för att identifiera fel i data.
Identifiera skillnader i hur text är formaterad. Du kan till exempel identifiera hur många telefonnummer som använder format A, format B och så vidare.
Exempel 1 – laddningsskript för att analysera telefonnummerformat
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
En tabell BusinessContactInfo som innehåller telefonnummer till kontaktpersoner för olika företag. Telefonnumren är 10-siffriga NANP-telefonnummer.
Ett beräknat fält, PhoneNumberFormat, för att bedöma om respektive telefonnummer matchar någon specifik uppsättning av telefonnummerformat.
Det finns tre olika format som vi vill kolla efter: (###) ###-####, ###-###-#### och ##########.
Laddningsskript
BusinessContactInfo:
Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID CompanyName ContactInfo
1 Company A (123) 456-7890
2 Company B 0123456790
3 Company C 234-567-8901
4 Company D (024) 680-2456
5 Company E (135) 791-3579
6 Company F 8901234567
7 Company G 235-235-2352
8 Company H (555) (555) (5555)
9 Company I 2342342343
10 Company J 444-444-4444
` (delimiter is '\t');
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
CompanyName
ContactInfo
PhoneNumberFormat
Resultattabell
CompanyName
ContactInfo
PhoneNumberFormat
Company A
(123) 456-7890
1
Company B
0123456790
3
Company C
234-567-8901
2
Company D
(024) 680-2456
1
Company E
(135) 791-3579
1
Company F
8901234567
3
Company G
235-235-2352
2
Company H
(555) (555) (5555)
0
Company I
2342342343
3
Company J
444-444-4444
2
Härifrån kan du till exempel skapa KPI:er för att beräkna det totala antalet för varje telefonnummerformat, samt antalet telefonnummer som inte har ett erkänt format:
Exempel på aggregeringsuttryck för att räkna förekomster av respektive format
Exempel 2 – diagramuttryck för att identifiera ISBN-format
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
En tabell Books med ISBN-koder för olika böcker.
Från dessa data vill vi identifiera om varje ISBN-kod är en giltig 10-siffrig eller 13-siffrig kod, baserat på syntax som anges i ett regex-mönster.
Laddningsskript
Books:
Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
Book
Lägg till denna beräknade dimension och ge den etiketten ISBN Format: