Page 1 of 1

Perl Pattern

Posted: Fri Mar 05, 2004 5:48 am
by RogerW37
I'm making this much harder than it should be...

I have one file, with multiple lines such as:

2800 Western Parkway, Ronald J. Prater and Gary M. and Margaret Boswell to Hugh P. and Jennifer Bosley for $118,000.
423 Tampa Drive, Kevin D. and Tabitha Hooker to Angela Baird for $67,000.
5035 Graham Lane, Helen L. Tipton to Charles L. Lamar for $47,550.

I need to convert this to:

"118000","Hugh P. and Jennifer Bosley","2800 Western Parkway"
"67000","Angela Baird","423 Tampa Drive"
"47550","Charles L. Lamar","5035 Graham Lane"

I plan to import that converted infomation into Excel.

I'm using TextPipe Standard and here's what I have so far (that isn't working)...
(\d+.*)(,)(\w+.*to)(\w+.*)(for)(\$\d)

I'm certainly open to suggestions as I've been working on this for awhile and I know I'm making it hard than it should be.

Thanks in advance for any insight.

Roger

Posted: Fri Mar 05, 2004 7:57 am
by DataMystic Support
Try

(\d+.*)(,)(\w+.*to)(\w+.*)(for)([^\d]*\$\d+?)

You were ignoring the spaces between 'for' and the dollar value.

Posted: Fri Mar 05, 2004 12:33 pm
by RogerW37
Wow! Thanks Simon for the prompt reply.

Here's what I did...
1. I copied your code verbatim into the "Find pattern (perl-style)" box.
2. Put "$6","$4","$1" into the "Replace with" box.
3. No check marks below the "Replace with" box.
4. I used the example code I listed above in the "Trial input" box.
5. Clicked "Trial run."

It simply displayed the same example code without any adjustments.

I put a check mark in the "Prompt on replace" to see if it was finding matches, and as I expected, it never prompted me about any replacements.

I tried a couple of other things as well that never moved me forward with a workable solution.

I would appreciate any additional ideas anyone has. I will work on this more tomorrow.

Thanks again!

Roger

Posted: Fri Mar 05, 2004 1:42 pm
by DataMystic Support
Remove the text in the replace box.

Then remove most of the pattern from the search box, verify it gets found, and then gradually add bits back until you find where it is not matching.

Posted: Sat Mar 06, 2004 6:02 am
by RogerW37
(\w+.*to)

This is the problem spot as it is looking for any "word" character with the usage of \w and there are periods (.) in this section such as:

Ronald J. Prater and Gary M. and Margaret Boswell to

I've tried a few things, but nothing seems to help me get around this.

Ideas?

Thanks,
Roger

Posted: Sat Mar 06, 2004 7:27 am
by DataMystic Support
Try

([\w\.]+.*to)

add any other chartacters you need inside the [..]

Posted: Wed Mar 10, 2004 2:38 am
by RogerW37
Thank you Simon! :D It worked!

(\d+.*)(,)([\w\.\ ]+.* to )([\w\.\ ]+.*)( for )([\d]*\$\d+?)

Thanks again!

Roger