I'm going to just copy and paste the entire content of "Searching with / and ?" (within a visual selection) from the Vim Tips Wiki.
In visual mode, / and ? will update
the visual selection just like any
other cursor-movement command (that
is, when in visual mode, searching
will extend the selection).
In order to actually search within the
visual selection, you will need to use
the \%V
atom, or use the markers
defined by the visual selection with
the \%>'<
and \%<'>
atoms. This is
best done by leaving the visual
selection with Esc before entering
your search. You may want to consider
a mapping to automatically leave
visual selection and enter the
appropriate atoms. For example:
:vnoremap <M-/> <Esc>/\%V
Using this mapping, you can press
Alt-/ in order to automatically fill
in a "range" for your search just like
using an Ex command with :
. To use
this, move to the first line of
interest and press V to start
line-wise visual selection. Move down
(press j for a line or } for a
paragraph, etc). When you have
selected the area you want to search,
press Alt-/. The visual selection will
be removed, and a search command will
start. You will see:
/\%V
Add what you want to find, then press
Enter. For example, you may enter
green and see:
/\%Vgreen
When you press Enter, each occurrence
of "green" will be highlighted, but
only in the area that you had
previously selected.
Here are two further examples that do
not use a visual selection. The first
command searches only in lines 10 to
20 inclusive. The second searches only
between marks a and b.
/\%>9l\%<21lgreen
/\%>'a\%<'bgreen