|
Posted by Sebastian Mendel on 06/14/05 19:38
Dotan Cohen wrote:
> Hi gurus. I'm having fun replacing the text within [ and ] to XML
> format on 4000+ files on a windows XP machine. I installed php (and an
> apache server) on the machine because it is the only language the I am
> remotely familiar with.
>
> I want and text that is with [ and ] to be enclosed with <note> and
> </note>. Going through the archives I found this nice regex (I changed
> it a bit- I hope that I didn't break anything important) that fits
> into str_replace:
>
> str_replace("/[([a-zA-Z]+?)]/", "<note>".$what
> was_inside_the_parethesis."</note>", $string);
str_replace doesnt support regular expressions
http://www.php.net/str_replace
what you need is preg_replace()
http://www.php.net/preg_replace
> But how on sweet mother Earth do I get the $what
> was_inside_the_parethesis variable to stick into the note tags? I
> tried functions that would remove the [ and ], then do
> $new_str="<note>".$what was_inside_the_parethesis."</note>";
> and then replace the whole [$what was_inside_the_parethesis] with
> $new_str. I did get that far.
preg_replace( '/\[([^\]]+)\]/', '<note>\1</note>', $string);
> Now the catch! If $what_was_inside_the_parethesis contains the word
> 'algebra' then I want nothing returned- in other words [$what
> was_inside_the_parethesis] should be cut out and nothing put in it's
> place. I added an if function in there that checked the presence of
> the word algebra, but it ALWAYS returned blank.
preg_replace( '/\[(algebra|([^\]]+))\]/', '<note>\2</note>', $string);
just to mention, you need only the second example, the first ist just to
explain the step toward the final ocde.
--
Sebastian Mendel
www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
Navigation:
[Reply to this message]
|