phpbar.de logo

Mailinglisten-Archive

[php] regular expression

[php] regular expression

Sebastian Mendel lists at sebastianmendel.de
Don Jan 27 09:16:28 CET 2005


Christian Heimerl wrote:
> Sebastian Mendel wrote:
> 
>> Christian Heimerl wrote:
>>
>>> <?php
>>> $x = '{LANG_TEXT2}';
>>> $x = preg_replace( "/(>[^<]*\{(LANG_.*?)\})/U", "$1{EDIT_$2}", $x
>>> );
>>> $x = preg_replace( "/(<[^>]*\{(LANG_.*?)\}.*?>)/U",
>>> "$1{EDIT_$2}", $x );
>>> echo $x;
>>> ?>
>>> rauskommen müsste:
>>> {LANG_TEXT2}{EDIT_LANG_TEXT2}
>>
>> achso, mhm ...
>> aber wieso zwei? geht doch mit einem ...
>> irgendwie so:
>> "/((?:<[^>]*)?\{(LANG_[^\}]*)\}(?:[^<]*>)?)/"
>> und wäre nicht auch preg_replace_all() besser?
> 
> 
> ich muss schon sagen... wow
> hab zwar keine ahnung was du da machst, funktioniert aber
> wunderbar

optionales < aber nur wenn kein > folgt

   (?:<[^>]*)?


dein LANG_TEXT Wort

   \{(LANG_[^\}]*)\}

optionales > aber nur wenn kein < vorher kam

   (?:[^<]*>)?

()? bedeutet ein oder kein mal

(?:) bedeutet nicht in Variable ablegen

[^<] alles, außer das genannte Zeichen


-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive