preg_match mal wieder

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

  • preg_match mal wieder

    hallo habe folgende var für eine preg_replace funktion

    PHP-Code:
    $suchmuster "!\<a href=\"((http(s)?|ftp|file|news)://)!i"
    ersetz werden solle alle url mit eine andern url und so weiter, ....

    jetzt will ich noch eine bedingung in das suchmuster einbauen

    er soll alle urls wie https://inside-past.com/* aus dem suchmuster ausschließen

    wie könnt ich das anstellen?

    danke fra7l7

  • #2
    Wie was wo?

    Ich versteh deine Frage nicht. -> am besten bei RegEx-Fragen, Beispiele posten. Welche URL soll erkannt werden, und welche nicht.
    Grüsse,
    Sebastian


    Profil Flex Freelancer
    Twitter twitter.com/flashhilfe
    Web Flash und Flex Community

    Kommentar


    • #3
      (?!xxx)

      Negiert das angegebene Pattern und wirkt sich auf das vorangehende aus.

      Beispiel: /text1(?!text2)/

      Trifft auf eine Zeichenkette zu, die "text1" enthält, aber kein "text2" danach.


      (?<!xxx)

      Negiert das angegebene Pattern und wirkt sich auf das nachfolgende aus.

      Beispiel: /(?<!text1)text2/

      Trifft auf eine Zeichenkette zu, die "text2" enthält, aber nur, wenn "text1" nicht davor kommt.
      http://www.php-resource.de/tutorials/read/10/1/
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        @ derHund
        Dazu sollte man vielleicht noch sagen das alles was in (?!xxx) bzw. (?<!xxx) nicht im Suchmuster enhalten ist.
        Grüsse,
        Sebastian


        Profil Flex Freelancer
        Twitter twitter.com/flashhilfe
        Web Flash und Flex Community

        Kommentar


        • #5
          steht doch schon da
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            bin ich blind? Oder meinste beim Link?
            Grüsse,
            Sebastian


            Profil Flex Freelancer
            Twitter twitter.com/flashhilfe
            Web Flash und Flex Community

            Kommentar


            • #7
              Original geschrieben von derHund
              (?!xxx)

              [...]

              Trifft auf eine Zeichenkette zu, die "text1" enthält, [color=red]aber kein "text2" danach.[/color]


              (?<!xxx)

              [...]

              Trifft auf eine Zeichenkette zu, die "text2" enthält, [color="red"]aber nur, wenn "text1" nicht davor kommt.[/color]
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Hä? Was hat das mit meiner Anmerkung zu tun?

                >> alles was in (?!xxx) bzw. (?<!xxx) nicht im Suchmuster enhalten ist

                Wenn man schreibt (.*) ist es im Suchmuster enthalten. Bei (?!) etc eben nicht.
                Grüsse,
                Sebastian


                Profil Flex Freelancer
                Twitter twitter.com/flashhilfe
                Web Flash und Flex Community

                Kommentar


                • #9
                  Hier habt ihr es erwähnt:

                  (?:xxx)
                  Verhält sich wie eine normale Klammerngruppe, erzeugt jedoch keine Backreference.

                  Bei den anderen nicht.
                  Grüsse,
                  Sebastian


                  Profil Flex Freelancer
                  Twitter twitter.com/flashhilfe
                  Web Flash und Flex Community

                  Kommentar


                  • #10
                    Original geschrieben von Sebastian W
                    Hier habt ihr es erwähnt:

                    (?:xxx)
                    Verhält sich wie eine normale Klammerngruppe, erzeugt jedoch keine Backreference.

                    Bei den anderen nicht.
                    häh? wie soll denn eine nicht vorhandene zeichenfolge als backref zur verfügung stehen? was sollte da drin stehen?

                    was meinst du mit
                    nicht im Suchmuster enhalten
                    ?
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      Ja, hast schon recht.
                      Aber ich finde man sollte es einfach nocht dazu schreiben, so wie hier:

                      http://www.regenechsen.de/regex_de/regex_liste_de.html

                      ...(?=...)

                      Positive Lookahead-Assertion. Das Muster vor der Klammer wird nur erkannt, wenn das Muster in der Klammer danach gefunden wird. Das Muster in der Klammer ist im Suchergebnis nicht enthalten.


                      Die Erklärung ist gut, und räumt misverständisse aus. - find ich zumindest
                      Grüsse,
                      Sebastian


                      Profil Flex Freelancer
                      Twitter twitter.com/flashhilfe
                      Web Flash und Flex Community

                      Kommentar


                      • #12
                        Die Erklärung ist gut, und räumt misverständisse aus. - find ich zumindest
                        OffTopic:
                        ja, von mir aus, aber trotzdem die frage: welcher wert sollte im ergebnis stehen? wenn etwas nicht vorhanden ist? das suchergebnis gibt doch nur die treffer zurück ...

                        außerdem sieht mans doch im ergebnis, daß da nix zurückgegeben wird ...? egal.

                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          OffTopic:

                          Naja, was klar ist und was nicht... trotzdem werden Fragen im Forum gestellt.

                          ... egal.

                          Grüsse,
                          Sebastian


                          Profil Flex Freelancer
                          Twitter twitter.com/flashhilfe
                          Web Flash und Flex Community

                          Kommentar


                          • #14
                            Hallo,

                            war ne weile weg also ich hab mal verscuht selber die (?!xxx) bedingungen auszuprobieren aber war ehr nichts. was ich vor hatte:

                            in der $var (siehe unten) alle links ersetzten mit $insert ersetzen die nicht gleich https://(www.)inside-past.com/* sind. ohne die bedingung klappts schon mal aber wie bastel ich nun die bedingung rein?

                            danke


                            PHP-Code:
                            $insert "<a target=\"_blank\" href=\"https://inside-past.com/dereferer.php?url=";
                            $regex1 "!\<a href=\"((http(s)?|ftp|file|news)://)!i";
                            $res preg_replace($regex1,$insert,$var); 
                            $var =

                            <TABLE cellSpacing="0" cellPadding="0" width="100%" align="left" border="0">
                            <TBODY>
                            <TR>
                            <TD><B><A HREF="http://past-research.com/mainframe.php?pg=32"><B>Hier bitte eine &Uuml;berschrift eintragen </B></A>
                            <BR></B>
                            <BR><IMG height="99" hspace="12" src="https://sslsites.de/cms.past-research.com/image_upload_dir/sample.jpg" width="129" align="right" vspace="2" border="0">
                            <P align="justify">dies ist ein <A HREF="https://inside-past.com/mainframe.php?pg=2">blindtext</A> und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist <A HREF="http://www.test.de/" target="_self">rechtlich</A> unantastbar <A HREF="https://www.test.de/" target="_blank">und</A> kann <A HREF="ftp://ftp.test.pe/">nicht</A> zur <A HREF="mailto:frank@7l7.net">rechenschaft</A> gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung. dies ist ein blindtext und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung. dies ist ein blindtext und steht f&uuml;r sich alleine nur aus layouttechnischen gr&uuml;nden zur verf&uuml;gung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umst&auml;nden der verneblung.</P></TD>
                            </TR>
                            </TBODY>
                            </TABLE>

                            Kommentar


                            • #15
                              preg_replace, zu hülf

                              Hallo,

                              ich hab schon mal gepostet gehabt, ... aber ich kriegs einfach nicht gebacken

                              in der $var (siehe unten) alle links ($regex1) ersetzten mit $insert! das funktioniert jetzt hab ich noch eine bedingung! alle links die mit
                              https://(www.)inside-past.com/ anfangen soll er nicht berücksichtigen d.h. nicht replacen, ... ich komm einfach nit dahinter wie es gemacht werden muß


                              danke



                              PHP:--------------------------------------------------------------------------------
                              $insert = "<a target=\"_blank\" href=\"https://inside-past.com/dereferer.php?url=";
                              $regex1 = "!<a href=\"((http(s)?|ftp|file|news)://)!i";
                              $res = preg_replace($regex1,$insert,$var);

                              --------------------------------------------------------------------------------


                              $var =

                              <TABLE cellSpacing="0" cellPadding="0" width="100%" align="left" border="0">
                              <TBODY>
                              <TR>
                              <TD><B><A HREF="http://past-research.com/mainframe.php?pg=32"><B>Hier bitte eine Überschrift eintragen </B></A>
                              <BR></B>
                              <BR><IMG height="99" hspace="12" src="https://sslsites.de/cms.past-research.com/image_upload_dir/sample.jpg" width="129" align="right" vspace="2" border="0">
                              <P align="justify">dies ist ein <A HREF="https://inside-past.com/mainframe.php?pg=2">blindtext</A> und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist <A HREF="http://www.test.de/" target="_self">rechtlich</A> unantastbar <A HREF="https://www.test.de/" target="_blank">und</A> kann <A HREF="ftp://ftp.test.pe/">nicht</A> zur <A HREF="mailto:frank@7l7.net">rechenschaft</A> gezogen werden - allerdings der urheber unter umständen der verneblung. dies ist ein blindtext und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umständen der verneblung. dies ist ein blindtext und steht für sich alleine nur aus layouttechnischen gründen zur verfügung. dieser blindtext widersteht jeglicher aussage und untersteht keinem sinn. der blindtext ist rechtlich unantastbar und kann nicht zur rechenschaft gezogen werden - allerdings der urheber unter umständen der verneblung.</P></TD>
                              </TR>
                              </TBODY>
                              </TABLE>

                              Kommentar

                              Lädt...
                              X