Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Mar 2006 09:07:19 +0300
From:      "Andrew Pantyukhin" <infofarmer@gmail.com>
To:        "Gary Kline" <kline@tao.thought.org>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: perl regex help request... .
Message-ID:  <cb5206420603222207q62b2e60es1fccc2bd67ea7891@mail.gmail.com>
In-Reply-To: <20060322231823.GA23486@thought.org>
References:  <20060322231823.GA23486@thought.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/23/06, Gary Kline <kline@tao.thought.org> wrote:
>
>         Guys,
>
>         perlmonks was helpful in explaining that "[[](\d+)[]]" is
>         what is required to match [NN].   So that will catch the
>         footnote numbers.  I had thought that I would have to do the
>         <A NAME=3D"NN"> NN xyz </A> anchor by hand.   Maybe not, if
>         somebody can clue me in on the perl regex for matching
>
>         "NN plus any/every character following until \n"
>
>         I can't find my regex book, and am not exactly clear if this
>         will work, but if I go back over my files and insert braces
>         around each note (at the page bottom) like:
>
>         {14, DEWEY AND TUFTS, *Ethics*, pp 345-7, &sect; 4 }
>
>         would this:
>
>         s/{(\d+)}(.+)/
>
>         capture the "14" plus  the rest on the bracketed line?  The
>         HTML would be (methinks):
>
>         <A NAME=3D"14">14, DEWEY AND TUFTS, *Ethics*, pp 345-7, &sect; 4 =
</A>
>
>         with the $1 capturing the 14 and $2 capturing the rest?
>
>         The entire s//g expr would be::
>
>         s/{(\d+)}(.+)/<A NAME=3D"$1> $1 $2 </A>
>
>         If this is right, I'll be very pleased with myself; else I'm
>         hoping that somebody can clue me in.

{(\d+)} matches {1} or {123} or {89437863896}, but does not
match when there's a non-digit (even a whitespace) inside the
brackets.

If you know that there are no curly braces inside the curly braces
you could use just /{(\d+)(.*?)}/

If you're not sure, /{(\d+)(.*)}/ without the /s switch should also work
as . will not match a newline.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cb5206420603222207q62b2e60es1fccc2bd67ea7891>