Thanks! Yes I want the \b.

Now what about this:

s/\bJr\b/ Junior /gi;

This is not exactly what I want because it will put a space before "Junior"
even if Junior is at the beginning and I don't want a space?

I suppose I could do this:

s/(\b)Jr(\b)/\1Junior\2/gi;

Is there an easier way?

Thanks,
Siegfried

-----Original Message-----
From: Jeff 'japhy' Pinyan [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 02, 2005 7:04 PM
To: Siegfried Heintze
Cc: beginners@perl.org
Subject: Re: Seaching for Words at the beginning of the line and end of line

On Jun 2, Siegfried Heintze said:

> How do I search for the word "intern" without searching for "internal"?
>
> What I have been doing is /intern[^a]/ but that won't match /intern$/.

You want to use a negative look-ahead:

   /intern(?!al)/

That means "match 'intern' that is not followed by 'al'".  But perhaps you 
just want to use word boundaries?

   /\bintern\b/

That will only match "intern" when there are no word characters to the 
left or right of it.  Thus, "I am an intern" will match, but "internal 
problems" and "abintern" won't match.  ("Abintern" isn't a word, but I 
wanted to prove a point.)

-- 
Jeff "japhy" Pinyan         %  How can we ever be the sold short or
RPI Acacia Brother #734     %  the cheated, we who for every service
http://japhy.perlmonk.org/  %  have long ago been overpaid?
http://www.perlmonks.org/   %    -- Meister Eckhart


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to