MatchRegEx() jämför indatasträngen med ett eller flera angivna reguljära uttrycksmönster och returnerar den numeriska platsen för de reguljära uttrycksmönster som matchar. Om inga matchningar hittas returnerar funktionen 0. Denna funktion söker endast efter exakta matchningar.
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.
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.
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.
Användning
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
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
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
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
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:
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!