Re: Regex - how to match until something



On Sun, 30 Apr 2006 02:55:54 +0200, Rik wrote:

Read up on regexes.

Learn what (.*?) means.

$string1 = preg_replace ( '/Hello(.*?)( today)/', 'Hello ***\2' , $string1);

Grtz,


Actually, there is no need to put (.*) within the parenthesis as you are
not using it later. You are just creating another variable needlessly. In
addition to that, $2 is preferred to \2. The "backslash" variables are
only needed in the original string, not in the replacement. Also, no need
to use non-hungry version of .* as there is only one terminator ("today")
in the string. Invocation like

$string1 = preg_replace ( '/Hello.*(today)/', 'Hello *** $1' ,$string1);

would be a bit faster and use less memory.

--
http://www.mgogala.com

.



Relevant Pages

  • Re: extract inner xml...
    ... exactly substring of original string. ... It waste memory and cpu.... ... Hanging fragments of the ...
    (comp.text.xml)
  • Re: splitting a string (and memory allocation)
    ... terminators while copying and comparing the original characters ... in the original string with the split character. ... For the pointer table just do the following: allocate a block of memory ...
    (comp.lang.c)