Thanks all!

Here may be the problem. The match/substitution that fails is at the end of
the string... I may need to see if there is no 'end-of-line' marker.

So, the data from this snippet:  print REPORT ":$street:\n";

:61 Susan Drive :
: :
: :
:2156 Overlook Drive :
: :
:750 Park Avenue #3-C :
:2 Park Avenue :
:Apartment 20-P 235 West 56th Street: <--this is the one that fails 'Street'

:811 Whitney Ave :
:19 Grey Hollow Road :
:328 Clinton Street :
:81 Alston Ave :
:23 Rockinghorse Trail :
:637 Pitcairn Place :


"Haimov, Eugene" wrote:

> While the code is obviously not perfect,
> I do not see why would it not work.
> It will probably help to see some of
> the original strings that go into these
> substitutions.
> ( Do they have "end-of-lines" embedded in them ? )
> Eugene Haimov
>
> -----Original Message-----
> From: michael higgins [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, June 25, 2002 1:42 PM
> To: [EMAIL PROTECTED]
> Subject: regex help?
>
> Hello --
>
> I've been lurking about this list for a while, learned a lot - mostly
> just that I have a lot to learn.
>
> I'm not a programmer... but I'm very interested in it, and have gotten
> myself to this point by desire. I cut my teeth with the syntax and
> behavior when I made a few utilities to write linked html pages as a
> looping narrative from a template... and some other things, like CGI
> stuff, forms, etc.
>
> Anyway, I got excited because  managed to use the Xbase.pm to fix a long
> troubling problem with a FoxPro data set -- performing functions not
> included with the front-end designed for fundraising.
>
> (I expect to be able to read the student home addresses from one file
> and switch with current address in another file when they graduate. )
>
> The problem hanging me up right now is the fixed field length in the
> .dbf is too short -- so I decided to shorten most strings with the
> following regexes.( I also want to eliminate a 'second line' in the
> .dbf, so we can use it for something else, this is why the field is now
> too short.) So, I'm abbreviating the longer, common strings and stuffing
> into one field
>
> The bit of code:
>
>    my $street = "$add"." "."$secln";
>
> $street=~s/,//;
> $street=~s/(\b)Apartment(\s)|(\b)Apt(\s)/$1Apt\.$2/i;
> $street=~s/(\b)Boulevard(\s)|(\b)Blvd(\s)/$1Blvd\.$2/i;
> $street=~s/(\b)Street(\s)|(\b)St(\s)/$1St\.$2/i;
> $street=~s/(\b)Drive(\s)|(\b)Dr(\s)/$1Dr\.$2/i;
> $street=~s/(\b)Avenue(\s)|(\b)Ave(\s)/$1Ave\.$2/i;
> $street=~s/(\b)Circle(\s)|(\b)Cir(\s)/$1Cir\.$2/i;
>
> Now, the problem is likely obvious: how do I perform all the necessary
> substitutions on the same string?
>
> What happens is that the string matches only one substitution, say Apt.
> for Apartment and leaves 'Street' or 'Avenue'. These replace fine when
> the sole potential  match, regardless of the location in the string.
>
> Perhaps I'm approaching this entirely the wrong way, but I've read some
> bundled documentation and my Deitel, but, I still don't have the answer
> to this problem, or a better idea to get it done.
>
> TIA? I'm on win98, activeState install... if this matters...
>
> --
> Michael Higgins
> Development Associate
> Joseph Slifka Center
>   for Jewish Life at Yale
> [EMAIL PROTECTED]
> 203-265-5984
>
> _______________________________________________
> ActivePerl mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

--
Michael Higgins
Development Associate
Joseph Slifka Center
  for Jewish Life at Yale
[EMAIL PROTECTED]
203-265-5984


_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to