Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.

Alteryx Designer Desktop Discussions

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

Regex Parsing ( Space & Character)

Tommy23
7 - Meteor

Hello,

 

I would like to split my data into column using regex (parse). I have a text file with data you look like this ( Dummy data Example)

 

2020-11-04-13.44.01.396216A61072 I9005374417

2020-11-04-16.03.26.776288A09000GSI5004320239

 

I would like this data to be like this 

 

Column1 (Size 26)                 Column2 (Size 2 )             Column3 (Size 1)      Column4(Size10)

 

2020-11-04-13.44.01.396216      A61072                             I                              9005374417

 

2020-11-04-16.03.26.776288      A09000GS                        I                              5004320239

 

 

For the first line and the Column2 : A61072 is size 8 because we want to consider the two white space as a character but it is not fill (See the picture Example1 from Notepad++ to see the character "orange point")

How can I create a regex who is going to consider all the particular case.

I know for the Column I need someting like this : (\d+-\d+-\d+-\d+.\d+.\d+.\d{6})

but I have trouble about the Colunm2 when there is space or not. I would like if it is possible a regex expression that create the four column even if there is particular case ( see column 2)

 

Thanks in advance for your help,

 

Best regards.

 

 

9 REPLIES 9
atcodedog05
22 - Nova
22 - Nova

Hi @Tommy23 

 

Since you know the size. Regex will be

 

Regex Tool | Parse tool.

(.{26})(.*)(.)(.{10})

atcodedog05
22 - Nova
22 - Nova

Hi @Tommy23 

 

Here is a workflow for the task.

Output:

atcodedog05_0-1606394608711.png

Config:

 

(.{26})(.*)(.)(.{10})

 

atcodedog05_1-1606394639056.png

 

Hope this helps 🙂 Feel to ask if you have any questions


If this post helps you please mark it as solution. And give a like if you dont mind 😀👍

PhilipMannering
16 - Nebula
16 - Nebula

Hi @Tommy23 

 

This is how I'd do it,

(.*?)(A\w+)\s*(I)(\d{10})
Tommy23
7 - Meteor

Hello,

 

I am happy baout your answer, but I did'nt put all the line and it look like it is not working 

Imagine I have this line

 

2020-11-04-05.09.29.599024A07438 U80055492150001001CPDEC 2020-11-04I BVAS ASSM2020-11-04VTM

 

2020-11-04-05.25.17.142866A09000GSU00050546360001002CPCLO 2020-03-16I BVAS1 ASSM2020-11-04VTM

 

and I look like this 

Column1 (Size 26)               2020-11-04-05.09.29.59902

 Column2 (Size 😎                A07438 

Column3 (Size 1)                 I

Column4(Size10)                 8005549215

Column5( everything else)   0001001CPDEC 2020-11-04I BVAS ASSM2020-11-04VTM

 

Column1 (Size 26)              2020-11-04-05.25.17.142866

 Column2 (Size 😎                A09000GS

Column3 (Size 1)                 U

Column4(Size10)                0005054636

Column5( everything else)  0001002CPCLO 2020-03-16I BVAS1 ASSM2020-11-04VTM

 

I telling you this because when I try your regex it show like ttis (see picture).

 

Thans in advnce for you reply,


Best regards

atcodedog05
22 - Nova
22 - Nova

Hi @Tommy23 

 

Try this regex

 

(.{26})(.*)(\l)(\d{10}).*

Output:

atcodedog05_0-1606396199232.png

 

 

Tommy23
7 - Meteor

Thanks it's working now!!

 

Do you know how to remove the first blank space and not the other one inside a line?

First blank space represent as (Here the first blank space) in this dummy data.

 

(Here the first blank space)2020-11-04-13.44.01.396216 A61072 DHHZ H123

 

Thansk again for your time and help.

PhilipMannering
16 - Nebula
16 - Nebula

@Tommy23 To remove the first blank space...

(.{26})\s?(.*)(\l)(\d{10}).*

 

atcodedog05
22 - Nova
22 - Nova

Hi @Tommy23 

 

You can use data cleansing Tool and removing leading & trailing spaces.

MarqueeCrew
20 - Arcturus
20 - Arcturus

@Tommy23 ,


structured data should be parsed with simple string functions for ease of maintenance as well as for performance considerations.  

Left([string],26)

Substring([string],26,2)

Substring([string],28,1)

Substring([string],29,10)

 

 these are the expressions which I would recommend

 

 cheers,

 

 mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.
Labels