Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.
Community is experiencing an influx of spam. As we work toward a solution, please use the 'Notify Moderator' option on the ellipsis menu to flag inappropriate posts.

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Tokenize email address

rarauj26
6 - Meteoroid

Hi Everyone,

 

Could you please give some help?

I'm rookie in RegEx and would like to tokenize the simple structure below.

 

 

Surname1, Name1 (Abb1) <userid1@samecompany.com>; Surname2, Name2 (Abb2) <userid2@samecompany.com>; Surname3, Name3 (Abb3) <userid3@samecompany.com>; ...

 

 

 

Regards,

 

Reinaldo S. Araujo

12 REPLIES 12
LordNeilLord
15 - Aurora

Hey @rarauj26

 

Can you give an example of what you want the output to be?

 

If you want to split in to rows, text to columns using ; as the delimiter and "split to rows" function would work

 

Then if you want to parse out the email address the RegEx tool using <(.*)> will give you the email address

LordNeilLord
15 - Aurora

Double post from me

rarauj26
6 - Meteoroid

Hi Neil,

 

yes!

We want to split by rows and the columns with the fields

 

 

          field1                field 2      field3   field4

row1  Surname1        Name1    Abb1   userid1

row2  Surname2        Name2    Abb2   userid2

row3  Surname3        Name3    Abb3   userid3

 

 

Regards,

 

MarqueeCrew
20 - Arcturus
20 - Arcturus

@rarauj26,

 

I split the record into rows using the TEXT TO COLUMNS tool and splitting on the ";" character.  Then I used a formula tool that uses the function of GetWord() to find the data.  Later I cleaned up characters that were "noise" and trimmed the result.

 

capture.jpg

 

Notes:  Assumes that words are without spaces.  I placed the (abb1) into a field of userid instead of abbreviation.  If names are present with spaces, I would use a regular expression to find them.

 

I hope that this helps you.

 

Cheers,


Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.
rarauj26
6 - Meteoroid

Mark,

 

Thanks!

It'd help, but as we're in a lerning process, a RegEx solution is prefered.

 

 

Regards,

 

Thableaus
17 - Castor
17 - Castor

Hi @rarauj26!

 

Here's the solution I thought.

 

ParseRegEx.PNG

 

Sure there are many ways to do it.

 

Cheers,

rarauj26
6 - Meteoroid

Hi @Thableaus 

 

looks like it works well!

 

Is it possible to give a solution with tokenization?!

I undertstood that we don't need to use the Text to Columns

 

 

Regards,

 


 

jdunkerley79
ACE Emeritus
ACE Emeritus

Here's my pure Regex tool solution

 

2018-10-31_18-04-19.png

 

Regex split to rows first then regex parse

 

^\s*(.*?),\s*(.*?)\s*\((.*)\)\s*<([^>]+)>\s*$

For details see: regexr.com/429nr

rarauj26
6 - Meteoroid

Hi @jdunkerley79,

 

 

 

It was great!

Could you please also get the last field, that is the "userid" before the @?

Notice that the company name must be the same in all addresses.

 

 

 

 

Regards

 

 

Labels