Thanks, Ronald, that works great!

On 1/19/07 7:24 AM, "Ronald J Kimball" <[EMAIL PROTECTED]> wrote:

> On Thu, Jan 18, 2007 at 06:33:49PM -0800, Allen Watson wrote:
>> I've never used recursive patterns. It seems like they might solve this
>> problem:
>> 
>> Given a block of five or six (or more) paragraphs of text, separated by
>> blank lines (consecutive returns), preceded by an HTML <p> tag and followed
>> by a </p> tag (around the entire block of text); find/replace to replace all
>> the intervening double returns with "\r</p>\r</p>", thus marking all the
>> return-delimited paragraphs as HTML paragraphs.
>> 
>> I have this search pattern:
>> 
>> (<p>)((?s).+?)(\r\r)((?s).+?)(</p>)
>> 
>> And this replace pattern:
>> 
>> \1\2\r</p>\r<p>\4\5
>> 
>> When I run it, it finds and replaces the first double return; run
>> repeatedly, it eventually replaces all of them, one per run.
>> 
>> Is there a way, using recursion, to do this all in a single find/replace
>> operation?
> 
> No.  Recursive patterns are for matching recursive strings, such as nested
> parentheses.  What you need is to do a further search and replace within
> the first search and replace.
> 
> Here's one way to do it in Perl:
> 
> #!perl
> 
> local $/;
> 
> $_ = <>;
> 
> s{(<p>.+?</p>)}{$x = $1; $x =~ s,\n\n,\n</p>\n<p>,g; $x}sge;
> 
> print;
> 
> __END__
> 
> 
> Ronald

-- 

Allen Watson  . Writer/Webmaster  [ p.  503 .281 .0250   m.  503 .916 .9411
e.  [EMAIL PROTECTED]
homepage.mac.com/allen_a_watson/



-- 
------------------------------------------------------------------
Have a feature request? Not sure the software's working correctly?
If so, please send mail to <[EMAIL PROTECTED]>, not to the list.
List FAQ: <http://www.barebones.com/support/lists/bbedit_talk.shtml>
List archives: <http://www.listsearch.com/BBEditTalk.lasso>
To unsubscribe, send mail to:  <[EMAIL PROTECTED]>

Reply via email to