nina: Regexp-Bedingung: Anchor's HREF-Tag

hi!
bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt. aber ich finde nichts im web :(
und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?
danke

  1. Liebe nina,

    lerne doch Regular Expressions! Es lohnt sich sowas von wirklich!!! Ich habe es mit http://www.regular-expressions.info/ gelernt und wirklich nie bereut!

    bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt.

    SELF, Mädchen!

    und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?

    Braucht es dazu wirklich regexp? Tut es da nicht eine einfache "string replace"-Methode/Funktion? - Naja, wenn die Tilde ("~") auch an anderer Stelle vorkommen kann, dann sicherlich _mit_ regexp, da hättest Du recht.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  2. hi nina,

    bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt. aber ich finde nichts im web :(
    und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?

    Wenn der "Link" so aussieht:

    <a ... href="~" ...>...</a>

    Dann klappt es hiermit fast immer:

      
    $link = '... <a href="~" class="eine_klasse">ein Link</a> ...';  
    $ersatz = 'irgendwas';  
    $neu = preg_replace(  
      '/(\<a[^\>]+href\=)([\'\"])(\~)(\2)([^\>]*\>)/',  
      '$1$2'.$ersatz.'$4$5',  
      $link  
    );  
    
    

    Der RegEx aufgedröselt:

    1. (<a[^>]+href=) ... alles, was vor dem href-Attribut kommt
    2. (['"]) ... die linken Begrenzungszeichen für den Attributwert
    3. (~) ... die Tilde
    4. (\2) ... die rechten Begrenzungszeichen für den Attributwert
    5. ([^>]*>) ... alles, was nach dem href-Attribut kommt

    [^>] ... ein beliebiges Zeichen außer dem "Größer-Als"

    \2 ... eine Rückreferenz ("back reference"), die genau das gleiche enthalten muss, wie das Muster, das in Klammer 2 gefunden wurde

    PCRE-Suchmuster-Syntax
    PCRE-Suchmuster-Modifikatoren

    Was mir schon oft geholfen hat, ist die "Original-Anleitung" zu den PCRE:
    http://www.pcre.org/pcre.txt

    MffG
    EisFuX

    --
    ... Suchmaschinen-Blog ...