FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » How do I do this search and replace?
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: How do I do this search and replace? [message #172346 is a reply to message #172307] Mon, 14 February 2011 09:01 Go to previous messageGo to previous message
Curtis Dyer is currently offline  Curtis Dyer
Messages: 34
Registered: January 2011
Karma:
Member
The Natural Philosopher <tnp(at)invalid(dot)invalid> wrote:

> BootNic wrote:
>> On Sat, 12 Feb 2011 13:15:44 -0800 (PST)
>> "laredotornado(at)zipmail(dot)com" <laredotornado(at)zipmail(dot)com> wrote:
>>
>>> I'm using PHP 5. I want to search for all instances of the
>>> "\n" character in my $contents variable and replace it with
>>> "\r\n". However, I do not want to replace the "\n" if the
>>> character immediately before is already a "\r". How would I
>>> construct such a search and replace to do this?
>>
>> [url][/color]
[color=teal]>> http://www.regular-expressions.info/lookaround.html#lookbehind[/color]
[color=teal]>> [/url] [/color]
>>
>> using negative lookbehind
>>
>> $contents = preg_replace("/(?<!\r)\n/", "\r\n", $contents);

And if you want to account for CRs as EOLs, you might try:

// Don't replace when CRs precede LFs nor when LFs follow CRs
$contents = preg_replace(
'/ (?<!\r) \n | \r (?!\n) /x',
"\r\n",
$contents
);

> yeah I can intuitively see exactly what THAT does.

This really isn't all that difficult.

Like all tools, regexes have their uses where appropriate. To
outright dismiss them is unwise, in my opinion.

With regard to the OP's case, I don't claim regexes are superior
to all alternatives, but they are certainly viable and get the job
done.

<snip>

--
Curtis Dyer
<?$x='<?$x=%c%s%c;printf($x,39,$x,39);?>';printf($x,39,$x,39);?>
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Curious problem
Next Topic: Hot Sameera Hot Cleavage show - Download
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sun Nov 10 15:03:12 GMT 2024

Total time taken to generate the page: 0.03804 seconds