Thomas Goik: Wie lösche ich Links auf einem Text

Hallo Leute,

ich habe folgendes Problem:
Auf meiner Seite sollen die Leute nicht immer Ihre HTML Link in das Posting Fenster Schreiben, jetzt wollte ich die  Link gegen einen Text tauschen:
$form{desc} =~ s/(http|www).+[.a-z0-9-].+(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

Jetzt löscht das Programm aber fast alles aus dem Text, kann mir da jemand einen Guten Tipp geben, bin schon seit ca. 3 Tagenm immer mal wieder am probieren, aber es klappt niemals ganz richtig!

Wäre Super!

Cu Shivaball!

  1. ich habe folgendes Problem:
    Auf meiner Seite sollen die Leute nicht immer Ihre HTML Link in das Posting Fenster Schreiben, jetzt wollte ich die  Link gegen einen Text tauschen:
    $form{desc} =~ s/(http|www).+[.a-z0-9-].+(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

    Jetzt löscht das Programm aber fast alles aus dem Text, kann mir da jemand einen Guten Tipp geben, bin schon seit ca. 3 Tagenm immer mal wieder am probieren, aber es klappt niemals ganz richtig!

    Kannst du noch etwas präzisieren, was den alles aus dem Text gelöscht wird? - In wiefern der "normale" Text davon betroffen?

    Gruss

    Philipp

    1. ich habe folgendes Problem:
      Auf meiner Seite sollen die Leute nicht immer Ihre HTML Link in das Posting Fenster Schreiben, jetzt wollte ich die  Link gegen einen Text tauschen:
      $form{desc} =~ s/(http|www).+[.a-z0-9-].+(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

      Jetzt löscht das Programm aber fast alles aus dem Text, kann mir da jemand einen Guten Tipp geben, bin schon seit ca. 3 Tagenm immer mal wieder am probieren, aber es klappt niemals ganz richtig!

      Kannst du noch etwas präzisieren, was den alles aus dem Text gelöscht wird? - In wiefern der "normale" Text davon betroffen?

      Gruss

      Philipp

      Bei:
      $form{DESC} =~ s/(http://).+([a-zA-Z0-9-])+?\s/ /ig;
      macht er folgendes!

      Hier mal ein Beispiel text:
      testlauf http://194.112.65.200/banner/millwin_468x60_1.gif auch wenn es keiner www.echtwahr.com wahr haben will http://prografix-design.com oder vielleicht kann es auch keiner wahr haben info@tezhnik.de oder?!
      Darauf macht er :
      testlauf oder?!
      Also er löscht alles?!

      Ich kann mir da echt nicht mehr helfen,
      wäre Super wenn Du eine Idee hättest!

      1. Hier mal ein Beispiel text:
        testlauf http://194.112.65.200/banner/millwin_468x60_1.gif auch wenn es keiner www.echtwahr.com wahr haben will http://prografix-design.com oder vielleicht kann es auch keiner wahr haben info@tezhnik.de oder?!
        Darauf macht er :
        testlauf oder?!
        Also er löscht alles?!

        Hallo Thomas

        Ich habe mich gestern noch etwas damit auseinandergesetzt und festgestellt, dass ich alles andere als ein Genie in Sachen RegExp bin.
        Es scheint, dass deine RegExp alles zwischen dem ERSTEN und LETZTEN Link löscht. Ich denke das Problem entsteht durch deinen mittleren Teil der RegExp:

        $form{DESC} =~ s/(http://).+([a-zA-Z0-9-])+(.com)\s/ /ig;
                                     ^^^^^^^^^^^^^^^^^

        vielleicht kann man hier was machen: Die maximale Anzahl Zeichen zwischen http und .com o. ä. begrenzen. Das macht man mit {n,m} : n:minimal;m:Maximal.
        Ich weiss aber nicht genau, wie man das Anwendet (habs gestern vergeblich versucht)

        Tschuldigung, aber bei Regexp kann ich wirklich nicht viel Beitragen (ich mag Regexp nicht umbedingt, obwohl es unglaubliche Möglichkeiten bietet)

        Viele Grüsse und viel Glück und Energie

        Philipp

        1. Hallo nochmals:

          ich hab (da mich das Problem auch betrifft) mal bei eGroups.com (perl-anfaenger) nachgefragt:

          Von Kim Woitecki und Roland Bluethgen habe ich folgende Rückmeldungen bekommen (an dieser Stelle möchte ich mich nochmals bei den beiden bedanken, auch wenn sie dies wahrscheinlich nicht lesen werden):

          http://forum.de.selfhtml.org/archiv/2000_3/t21729.htm#a111398 (und noch etwas weiter unten!)

          Viel Glück bei der Umsetzung

          ---Philipp

  2. Hallo Leute,

    ich habe folgendes Problem:
    Auf meiner Seite sollen die Leute nicht immer Ihre HTML Link in das Posting Fenster Schreiben, jetzt wollte ich die  Link gegen einen Text tauschen:
    $form{desc} =~ s/(http|www).+[.a-z0-9-].+(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

    Jetzt löscht das Programm aber fast alles aus dem Text, kann mir da jemand einen Guten Tipp geben, bin schon seit ca. 3 Tagenm immer mal wieder am probieren, aber es klappt niemals ganz richtig!

    Wäre Super!

    Cu Shivaball!

    --
    mail:   mail@kai-diefenbach.de
    www:    http://www.kai-diefenbach.de
    Tel: 0700 - 000BACH
    Fax: 0700 - 000BACH

    1. Ähh sorry,

      missglückter Test des Selfbrowser Unix.
      (Wobei ich wirklich überrascht bin, dass ich gepostet haben soll.)

      Gruß Kai

  3. ich habe folgendes Problem:
    Auf meiner Seite sollen die Leute nicht immer Ihre HTML Link in das Posting Fenster Schreiben, jetzt wollte ich die  Link gegen einen Text tauschen:
    $form{desc} =~ s/(http|www).+[.a-z0-9-].+(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

    Du solltest "non greedy" aktivieren:
    $form{desc} =~ s/(http|www).+?[.a-z0-9-].+?(.com|.net)/ Bitte benutzt das Link Feld dazu/ig

    Das ? bewirkt, dass statt der maximalen Anzahl die minimale Anzahl an Zeichen gefunden wird. Ohne "?" wird nämlich vom 1. bis zum letzten Link alles gelöscht.

    Ich weiß nicht, obs so klappt, aber probiers mal aus.

    Grüße,
    Crunch