[Chicago-talk] Regular expression question

Jay Strauss me at heyjay.com
Sun May 3 09:21:28 PDT 2009


Thank you, that makes sense.

Jay

On Sat, May 2, 2009 at 3:04 PM, Jonathan Rockway
<jon-chicagotalk at jrock.us> wrote:
> * On Fri, May 01 2009, Andrew Rodland wrote:
>> On Friday 01 May 2009 06:08:29 pm Michael Potter wrote:
>>>  Mongers,
>>>
>>> What is the cleanest way to combine these three regular expressions:
>>>
>>> $Note =~ s/^Eft /EFT /;
>>> $Note =~ s/ Eft / EFT /;
>>> $Note =~ s/ Eft$/ EFT/;
>>
>> This gives _nearly_ the same behavior and might work within your spec:
>>
>> s/\bEft\b/EFT/;
>>
>> More complicated and not tested but _should_ match your question exactly:
>>
>> s/(?:^|(?< ))Eft(?:$|(?= ))/EFT/;
>
> If the \b regex doesn't work, how about s/(^| )Eft( |$)/$1EFT$2/g ?
> That is usually how I represent this sort of operation.  (If you want to
> keep part of the input, just capture it and put it into the output
> explicitly.  [Perl 5.10 also has \k, but that won't work in this case.])
>
> There is one difference though.  Your original regexs would change the
> input:
>
>   Eft blah blah Eft blah blah Eft
>
> to
>
>   EFT blah blah EFT blah blah EFT
>
> (since each regex is allowed to match once, and each does).
>
> Without /g, my regex would change that to:
>
>   EFT blah blah Eft blah blah Eft
>
> Also, can someone unban my real address from the list?  Now that a
> certain Reign Of Terror has ended, I think this is just an
> administrative error.
>
> Regards,
> Jonathan Rockway
>
> --
> print just => another => perl => hacker => if $,=$"
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
>


More information about the Chicago-talk mailing list