Reguläre Ausrücke - Webadressen Ersetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Reguläre Ausrücke - Webadressen Ersetzen

    Hi, ich arbeite mich gerade in das Thema der Regular Expressions ein und hab folgendes gebastelt, um adressen im format www.domain.de durch * zu ersetzen :

    PHP-Code:
    $string1 preg_replace("/w{3}[\.]([a-z][A-Z][0-9])+[\.]([a-z][A-Z]){1,4}/i""*"$string1); 
    Aber es funktioniert nicht (Der String bleibt unverändert)

    Wie muss ich die Expression umschreiben ?


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

  • #2
    da steht natürlich [ \ . ] (ohne Leerzeichen) statt [.] nur wird das im forum scheinbar ersetzt


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #3
      PHP-Code:
      preg_replace("/w{3}[.]([a-zA-Z0-9])+[.]([a-zA-Z]){1,4}/i""*"$string1); 
      [.] muss natürlich [\ .] (ohne Leerzeichen) sein.

      Kommentar


      • #4
        Danke, dann war ich von der Lösung ja gar nicht soo weit entfernt.

        ([a-z][A-Z][0-9]) war zuviel geklammert.

        Also vielen dank, es funzt jetzt wie erwartet


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          und wenn jemand wWw.domain.de eingibt?
          PHP-Code:
          $result preg_replace("/w{3}[\\.]([a-z0-9])+[\\.]([a-z]){2,4}/iU""*"$string1); 
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            OffTopic:
            Immer was zu meckern, diese Moderatoren.

            Kommentar


            • #7
              sorry, beim w hab ich es net bedacht


              wie pflege ich da jetzt noch ein optionales http:// ein ?


              An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

              Kommentar


              • #8
                ja, fängt es ab, aber du kannst auch einfach den modifier U nehmen und musst dir keine gedanken machen, ob du die variante in großbuchstaben nicht irgendwo (wie beim www) vergessen haben könntest

                ([http://])? wäre einen versuch wert
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  das Programm sieht so aus :
                  PHP-Code:
                  $string1 "Eine Internetadresse : [url]www.web.de[/url] und noch eine [url]www.gmx.com[/url]";
                  $string2 "Hallo, hier steht eine Internetadresse : [url]http://www.web.de[/url]";

                  echo(
                  "<p>String1 : $string1<br>String2 : $string2</p>");

                  $string1 preg_replace("#([[url]http://[/url]])?w{3}[\.]([a-zA-Z0-9])+[\.]([a-zA-Z]){2,4}#iU""*"$string1);
                  $string2 preg_replace("#([[url]http://[/url]])?w{3}[\.]([a-zA-Z0-9])+[\.]([a-zA-Z]){2,4}#iU""*"$string2);

                  echo(
                  "<p>String1 : $string1<br>String2 : $string2</p>"); 
                  Ausgabe :
                  String1 : Eine Internetadresse : www.web.de und noch eine www.gmx.com
                  String2 : Hallo, hier steht eine Internetadresse : http://www.web.de

                  String1 : Eine Internetadresse : * und noch eine *m
                  String2 : Hallo, hier steht eine Internetadresse : http:/*
                  also nicht 100% wie erwartet, weil .de .fr fängt er ab aber bei endeungen mit 3 buchstaben ersetzt er nur die ersten 2 buchstaben.

                  und bei http:// wird nur ein / ersetzt 0_o

                  edit : Das PHP tag mag mich nicht, die regular expression sieht so aus :

                  "#([http://])?w{3}[\.]([a-zA-Z0-9])+[\.]([a-zA-Z]){2,4}#iU"


                  An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                  Kommentar


                  • #10
                    Lösung : Modifier U weg, und wWw wird auch ersetzt


                    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                    Kommentar

                    Lädt...
                    X