Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Interpolate Text Not Inside a Certain Tag

by satchm0h (Beadle)
on Apr 07, 2005 at 20:39 UTC ( #445870=note: print w/replies, xml ) Need Help??


in reply to Interpolate Text Not Inside a Certain Tag

I realize you already have a solution, but what about this:
sub boldify { local $/ = undef; my $input = shift; my @parts = split /``/, $input; foreach my $i (0..scalar(@parts)) { $parts[$i] =~ s/\*\*(.+?)\*\*/<b>$1<\\b>/gs if ($i % 2 == 0); } return join '', @parts; }

Here's a test:

my $test_data = <<INPUT; This is **bold**, but ``this is **not** bold`` ``This is **not** bold``, but this is **bold**, and ``this is **not** +bold`` This sure is **bold** and so is **this**, but ``**this**`` aint INPUT print boldify($test_data);

output

This is <b>bold<\b>, but this is **not** bold This is **not** bold, but this is <b>bold<\b>, and this is **not** bol +d This sure is <b>bold<\b> and so is <b>this<\b>, but **this** aint

Replies are listed 'Best First'.
Re^2: Interpolate Text Not Inside a Certain Tag
by Anonymous Monk on Apr 11, 2005 at 14:39 UTC
    Quite interesting, but I don't think it's flexible enough. For example, if later I decide that `` enclosed by spaces ( /\s``\s/ ) shouldn't be recognized as an "escape mark", well, how can we detect it?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://445870]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2019-12-08 10:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?