Solved

Regex Help

Posted on 2013-12-12
8
494 Views
Last Modified: 2013-12-12
I need help with a regex to match any one of these cases.

ATTENDEE;CN="Jason Johnson";CUTYPE=INDIVIDUAL;EMAIL="jason_johnson@sweet
 water.com";PARTSTAT=ACCEPTED:urn:uuid:2F00405F-6019-494D-BB8F-368758197A
 11
ATTENDEE;CN="Joe McNeely";CUTYPE=INDIVIDUAL;EMAIL="joe_mcneely@sweetwate
 r.com";PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE;SCHEDULE-STA
 TUS="1.2":urn:uuid:D6ABEECD-2352-4777-8567-369B6FD2FA43
ATTENDEE;CN="Mike Lentine";CUTYPE=INDIVIDUAL;EMAIL="mike_lentine@sweetwa
 ter.com";PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;SCHEDULE-STATUS="2.0":ur
 n:uuid:9D2E81FD-97C4-44E0-951F-B67FF8FB8394
ATTENDEE;CN="Jason Johnson";CUTYPE=INDIVIDUAL;EMAIL="jason_johnson@sweet
 water.com";PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT:urn:uuid:2F00405F-6019
 -494D-BB8F-368758197A11
ATTENDEE;CN="John Hopkins";CUTYPE=INDIVIDUAL;EMAIL="john_hopkins@sweetwa
 ter.com";PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT:urn:uuid:AF78E76B-7447-4
 1E8-AC7E-51C27A9BEB5B

Open in new window


I'm close my problem is the spaces in the after the line breaks. I really need to eval it as a single uuid.. I am working on a calendar migration and I'm trying to find old UUID's and replace them. I attached the entire file just incase you want to see what I am working with.

(?s)urn:uuid:.{8}-.{4}-.{4}-.{4}-.{12}

Open in new window

Jason-Johnson-1.txt
0
Comment
Question by:JasonPJohnson
  • 4
  • 3
8 Comments
 
LVL 2

Author Comment

by:JasonPJohnson
ID: 39714930
I think I found 1 option...a bit ugly but hey it seems to work

urn:uuid:(?s).\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*
0
 
LVL 2

Author Comment

by:JasonPJohnson
ID: 39714937
this seems to work better.

(?s):u\s*r\s*n\s*:\s*u\s*u\s*i\s*d\s*:.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*-.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*.\s*
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 39714952
This would be a bit neater:
urn:uuid:(\S\s*){8}-(\S\s*){4}-(\S\s*){4}-(\S\s*){4}-(\S\s*){12}
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 35

Expert Comment

by:Terry Woods
ID: 39714960
Can you strip out the spaces before applying the regex? That would be simpler.
0
 
LVL 2

Author Comment

by:JasonPJohnson
ID: 39714968
I tried to find and replace spaces but it wont import in to zimbra after words and I can't seem to figure out how to add them back in.
0
 
LVL 35

Accepted Solution

by:
Terry Woods earned 500 total points
ID: 39714994
Combining your latest pattern, and mine, I get this, which seems to work ok:
u\s*r\s*n\s*:\s*u\s*u\s*i\s*d\s*:(\S\s*){8}-(\S\s*){4}-(\S\s*){4}-(\S\s*){4}-(\S\s*){12}
0
 
LVL 12

Expert Comment

by:stefan73
ID: 39715387
Split the tasks into steps:
$blob=<FILE>;
$blob =~ s/\n  //g;
@datasets=split("\n",$blob);

... then you can tackle each dataset separately and you don't end up with a regex which is hell to maintain.
0
 
LVL 2

Author Closing Comment

by:JasonPJohnson
ID: 39715396
Thanks perfect
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
The viewer will learn how to dynamically set the form action using jQuery.

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question