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 #172356 is a reply to message #172354] Mon, 14 February 2011 10:28 Go to previous messageGo to previous message
The Natural Philosoph is currently offline  The Natural Philosoph
Messages: 993
Registered: September 2010
Karma:
Senior Member
Erwin Moller wrote:
> On 2/14/2011 10:55 AM, The Natural Philosopher wrote:
>> Erwin Moller wrote:
>>> On 2/12/2011 11:51 PM, 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?
>>>>
>>>> http://www.regular-expressions.info/lookaround.html#lookbehind
>>>>

>>>>
>>>> using negative lookbehind
>>>>
>>>> $contents = preg_replace("/(?<!\r)\n/", "\r\n", $contents);
>>>>
>>>>
>>>
>>> One addition: Using the double replacement strategy as described by
>>> Richard is easier to understand (for non-regexp people), but needs 2
>>> sweeps over the content.
>>>
>>> In case performance matters (more specifically: if the $contents is a
>>> huge string, or/and you have to do this replacement many times
>>> sequentially), if might be better to use the above approach from
>>> BootNic, because I expect it will be much faster.
>>>
>>
>> If performance is an issue, code a one pass loop.
>
> That is exactly what BootNic did.
>
>> Preferably inassembler :-)
>
> Sure. ;-)
>
>>
>> regexp processing is not fast.
>
> Compared to what? Assembly?
>

almost anything.

what you need to understand is that general purpose routines like printf
or a regexp, have to do many many tests IN CASE what gets passed to them
contains one of many possibilities.

They are hugely wasteful compared with a routine dedicated to doing but
one or two things.



> Erwin Moller
>
>>
>>
>>> If performance isn't an issue, pick whatever suits you. :-)
>>>
>>> Regards,
>>> Erwin Moller
>>>
>
>
[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: Thu Nov 28 08:29:43 GMT 2024

Total time taken to generate the page: 0.05062 seconds