Anzeige

Preg Replace Hilfe

Preg Replace Hilfe | PSD-Tutorials.de

Erstellt von LowkaZ, 08.07.2008.

  1. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    Preg Replace Hilfe
    wie immer kämpfe ich mit preg_replace und den regulären ausdrücken.

    ich hab ein text mit html etc will aber einen gewissen teil ersetzen zB:
    preg_replace('&foo&','bar',$text);
    dabei darf aber 'foo' nicht innerhalb eines HTML Tags stehen also zwischen '<' '>'

    hat doch einer sicherlich fix gemacht oder ? :)
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    Aus'm IRC:
    PHP:
    1.  
    2. $regex = "@foo(?![^<]*>)@";
    3.  
    Zumindest klappt das für meine rudimentäres Testdokument.

    Duddle
     
    #2      
  3. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    $text = preg_replace("/".$rule['search']."(?![^<]*>)/", $rule['replace'], $text);
    sieht ja genauso aus ... passt auch mit meinem dokument.
     
    #3      
  4. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    und was sagt man(n) da?

    DAAAANKE lieber Duddle!

    ( .... sowas lernt man theoretisch mit 2-3 Jahren ;) )
     
    #4      
  5. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    habs aber von jemand anderem ;-)
    Trotzdem danke für die Hilfe, ich werd Regex nie verstehen...

    Duddle kannst du den regex mal erklären? Die einfachen regex sachen kapier ich noch aber das is sehr komplex
     
    #5      
  6. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    Ja, RegEx haben meistens die Eigenschaft "read only" zu sein...

    Code (Text):
    1. foo(?=[^<]*>)
    ist ein positiver Lookahead. Der nimmt jedes foo, das gefolgt wird von
    Code (Text):
    1. [^<]*>
    [^<]* ist dabei alles was kein "<" ist, und das n-mal (n >= 0) und wird gefolgt von einem >.
    Im Klartext matcht
    Code (Text):
    1. foo(?=[^<]*>)
    alle foo, die (wahrsch.) innerhalb eines Tags stehen. Da wir das genau andersherum möchten, nimmt man den negativen Lookahead und hat dann
    Code (Text):
    1. foo(?![^<]*>)
    Daran sieht man auch schnell, wie leicht die RegEx gebrochen werden kann: sie übersieht jedes foo, das von einem > gefolgt wird, also auch bei Breadcrumb-Navigationen o.ä.


    Duddle
     
    #6      
  7. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    Preg Replace Hilfe
    AW: Preg Replace Hilfe

    Danke Duddle, wird langsamer bissel klarer und das hilft schon wenn man es denn erklärt bekommt. Danke dafür :)
     
    #7      
Seobility SEO Tool
x
×
×