alpha: html tag erkennen

Hallo,

ich suche nach einer regular expression, die erkennt, ob ein gesuchtes wort innerhalb eines html tags steht. Ist bestimmt ein relativ einfacher Ausdruck, ich bekomm es aber irgenwie nicht hin.

Gruß.

  1. ich suche nach einer regular expression, die erkennt, ob ein gesuchtes wort innerhalb eines html tags steht. Ist bestimmt ein relativ einfacher Ausdruck, ich bekomm es aber irgenwie nicht hin.

    Und was hast du bisher versucht?

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. »» ich suche nach einer regular expression, die erkennt, ob ein gesuchtes wort innerhalb eines html tags steht. Ist bestimmt ein relativ einfacher Ausdruck, ich bekomm es aber irgenwie nicht hin.

      Und was hast du bisher versucht?

      mfg Beat

      So hab ich das versucht:

      /.*<[^<>]$gsuchteswort.*>.*/

      Ich bin mir aber noch nicht sicher, ob das immer funktioniert. Muss ich noch weiter testen.

      Gruß.

      1. So hab ich das versucht:
        /.*<[^<>]$gsuchteswort.*>.*/

        Ich bin mir aber noch nicht sicher, ob das immer funktioniert. Muss ich noch weiter testen.

        Was willst du mit .* am Anfang und Ende matchen?
        Um ein HTML Tag zu matchen, brauchst du die spitze Klammer-

        m/ < [^<>]*? \Q $word \E [^<>]*? > /x

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Danke für den Tipp. Ich werde das mal testen.

          Gruß.

          »» So hab ich das versucht:
          »» /.*<[^<>]$gsuchteswort.*>.*/

          »» Ich bin mir aber noch nicht sicher, ob das immer funktioniert. Muss ich noch weiter testen.

          Was willst du mit .* am Anfang und Ende matchen?
          Um ein HTML Tag zu matchen, brauchst du die spitze Klammer-

          m/ < [^<>]*? \Q $word \E [^<>]*? > /x

          mfg Beat

        2. Der Ausdruck funktioniert. Ich habe jedoch festgestellt, dass ich genau das gegenteil brauche. Ich muss das Wort matchen welches nicht in einem html tag auftaucht.
          Ich möchte sozusagen ein html Dokument nach einem bestimten wort dursuchen. Das erste auftauchen des gesuchten Wortes ausserhalb eines html tags möchte ich durch ein anderes ersetzen, jedoch wenn es vorher in einem html tag auftaucht, soll es ignoriert werden.

          ich müsste also diesen Ausdruck negieren:

          < [^<>]*? \Q $word \E [^<>]*? > /x

          dann sollte es passen. Wie negiere ich diesen Ausdruck?

          Gruß.

          »» So hab ich das versucht:
          »» /.*<[^<>]$gsuchteswort.*>.*/

          »» Ich bin mir aber noch nicht sicher, ob das immer funktioniert. Muss ich noch weiter testen.

          Was willst du mit .* am Anfang und Ende matchen?
          Um ein HTML Tag zu matchen, brauchst du die spitze Klammer-

          m/ < [^<>]*? \Q $word \E [^<>]*? > /x

          mfg Beat

          1. Der Ausdruck funktioniert. Ich habe jedoch festgestellt, dass ich genau das gegenteil brauche. Ich muss das Wort matchen welches nicht in einem html tag auftaucht.
            Ich möchte sozusagen ein html Dokument nach einem bestimten wort dursuchen. Das erste auftauchen des gesuchten Wortes ausserhalb eines html tags möchte ich durch ein anderes ersetzen, jedoch wenn es vorher in einem html tag auftaucht, soll es ignoriert werden.

            ich müsste also diesen Ausdruck negieren:

            < [^<>]*? \Q $word \E [^<>]*? > /x

            nein

            Deine Aufgabe lautet
            wenn x und nicht <x>
            oderwenn x und <x> und pos x > pos <x>
            dann ersetze x mit y.

            dann sollte es passen. Wie negiere ich diesen Ausdruck?

            Stelle zuerst dein Problem logisch dar.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. hmm,

              kann ich gar nicht glauben, dass das so kompiziert sein soll. Ich möchte doch nur das erste Auftauchen eines Wortes in einem html dokument finden welches nicht von zpitzen klammern eingeschlossen ist. Das sollte doch auch mit einem Ausdruck gehen. Ich finde dazu aber nichts. Ich habe auch schon im o'reilly Buch "mastering regular expressions" nachgesehen. Da steht auch nur drin wie ich einen tag matche aber nicht umgekehrt.

              der HTML::TokeParser funktioniert zwar sehr gut. Ich kann damit den Text aus dem html dokument fischen. Ich kann jedoch keine Änderungen am text vornehmen.

              Gruß.

              »» Der Ausdruck funktioniert. Ich habe jedoch festgestellt, dass ich genau das gegenteil brauche. Ich muss das Wort matchen welches nicht in einem html tag auftaucht.
              »» Ich möchte sozusagen ein html Dokument nach einem bestimten wort dursuchen. Das erste auftauchen des gesuchten Wortes ausserhalb eines html tags möchte ich durch ein anderes ersetzen, jedoch wenn es vorher in einem html tag auftaucht, soll es ignoriert werden.
              »»
              »» ich müsste also diesen Ausdruck negieren:
              »»
              »» < [^<>]*? \Q $word \E [^<>]*? > /x

              nein

              Deine Aufgabe lautet
              wenn x und nicht <x>
              oderwenn x und <x> und pos x > pos <x>
              dann ersetze x mit y.

              »» dann sollte es passen. Wie negiere ich diesen Ausdruck?

              Stelle zuerst dein Problem logisch dar.

              mfg Beat

              1. Bitte zitiere vernünftig.

                »» Stelle zuerst dein Problem logisch dar.
                kann ich gar nicht glauben, dass das so kompiziert sein soll.

                Es ist auch nicht kompliziert - nur möchte dir hierbei scheinbar keiner die Lösung vorkauen, sondern zeigen wie du selbst zu Lösung kommst.

                Beats hinweis, dass du dein Problem logisch darstellen sollst, ist imho äußerst hilfreich - das erkennt man am bisherigen Threadverlauf.

                Erst schreibst du, du möchtest Strings innerhalb von HTML-Tags erkennen. Mein erster gedanke war "Du meinst HTML-Elemente" - aber es hat sich schnell rausgestellt, dass du wirklich Tags meinst.

                Jetzt sagst du, du willst alles erkennen, was ausserhalb von HTML-Tags steht.

                Ich frage mich, was ist mit Attributen?

                  
                <foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" foo="bar">foo</foo>
                

                Angenommen du willst "foo" ersetzen - _WAS_ genau soll jetzt ersetzt werden?

                Innerhalb des Elements?
                <foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" foo="wert">bar</foo>

                Innerhalb von Attributen:
                <foo href="http://example.com/bar" title="Den Artikel 'bar' auf example.com" foo="bar">foo</foo>

                Die Attributnamen?
                <foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" bar="foo">foo</foo>

                Innherhalb bestimmter Attribute - z.b. "nicht das href-Attribut":
                <foo href="http://example.com/foo" title="Den Artikel 'bar' auf example.com" foo="bar">foo</foo>

                Es gibt noch weitere Möglichkeiten - aber ich lasse dich gerne selbst denken.

                Um einen Regulären Ausdruck zu erstellen ist es essentiell wichtig, eine exakte logische Vorstellung von dem zu haben, was man eigentlich will. Wenn man diese hat, prüft man anhand dieses logischen Musters alle Möglichkeiten, die dadurch entstehen können. Erst dann, baut man daraus den eigentlichen Ausdruck.

                Mit zunehmender Erfahrung kann man diese Schritte vereinen - aber eine genaue Dokumentation im Quellcode (was eine Funktion oder eine Regulärer Ausdruck tun soll) sollte immer vorhanden sein, damit man auch später noch weis, wie's gemeint war.

                1. Hallo,

                  es soll nichts ersetzt werden was zwischen < und > steht.
                  Ich habs jetzt hinbekommen, in dem ich mit einer for Schleife und substr() mir einfach jedes Zeichen der Zeile ansehe. wenn ein < kommt ignoriere ich einfach alles bis wieder ein > kommt.

                    
                  sub tag_search{  
                  	my $l=length($text[$lcounter]);  
                  	my $i=0;  
                  	my $c=undef;  
                  	my $str=undef;  
                  	my $tagon=0;  
                  	my $startpos=0;  
                  	my $str1; my $str2;  
                  	  
                  	for ($i=0;$i<=$l;$i++) {  
                  		$c=substr($text[$lcounter],$i,1);  
                  		if ($tagon && $c ne ">") {next;}  
                  		if ($tagon && $c eq ">"){$tagon=0;$startpos=$i+1;next;}  
                  		if (!$tagon && $c ne "<" && $i<$l) {$str.=$c;}  
                  		else {  
                  			$tagon=1;  
                  			if ($str=~/$miss/) {  
                  				if ($_[0] eq "all"){$str=~s/$miss/$change/g;}  
                  				else{$str=~s/$miss/$change/;}  
                  				$str1=substr($text[$lcounter],0,$startpos);  
                  				$str2=substr($text[$lcounter],$i,$l);  
                  				$text[$lcounter]=$str1.$str.$str2;  
                  				$i=length($str1.$str)-1;  
                  				$str=undef;$str1=undef;$str2=undef;  
                  				if ($_[0] ne "all"){last;}  
                  				$l=length($text[$lcounter]);  
                  			}else{$str=undef;}  
                  		}  
                  	}  
                  }  
                  
                  

                  Wie ich perl kenne wäre das auch einfacher gegangen. Aber ich bin da irgendwie nicht auf die Lösung gekommen. Mit regulären Ausdrücken habe ich zugegeben manchmal noch Probleme.

                  Aber trotzdem vielen Dank für deine Ausführungen.

                  Gruß.

                  Bitte zitiere vernünftig.

                  »» »» Stelle zuerst dein Problem logisch dar.
                  »» kann ich gar nicht glauben, dass das so kompiziert sein soll.
                  Es ist auch nicht kompliziert - nur möchte dir hierbei scheinbar keiner die Lösung vorkauen, sondern zeigen wie du selbst zu Lösung kommst.

                  Beats hinweis, dass du dein Problem logisch darstellen sollst, ist imho äußerst hilfreich - das erkennt man am bisherigen Threadverlauf.

                  Erst schreibst du, du möchtest Strings innerhalb von HTML-Tags erkennen. Mein erster gedanke war "Du meinst HTML-Elemente" - aber es hat sich schnell rausgestellt, dass du wirklich Tags meinst.

                  Jetzt sagst du, du willst alles erkennen, was ausserhalb von HTML-Tags steht.

                  Ich frage mich, was ist mit Attributen?

                  <foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" foo="bar">foo</foo>

                  
                  >   
                  > Angenommen du willst "foo" ersetzen - \_WAS\_ genau soll jetzt ersetzt werden?  
                  >   
                  > Innerhalb des Elements?  
                  > `<foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" foo="wert">bar</foo>`{:.language-xml}  
                  >   
                  > Innerhalb von Attributen:  
                  > `<foo href="http://example.com/bar" title="Den Artikel 'bar' auf example.com" foo="bar">foo</foo>`{:.language-xml}  
                  >   
                  > Die Attributnamen?  
                  > `<foo href="http://example.com/foo" title="Den Artikel 'foo' auf example.com" bar="foo">foo</foo>`{:.language-xml}  
                  >   
                  > Innherhalb bestimmter Attribute - z.b. "nicht das href-Attribut":  
                  > `<foo href="http://example.com/foo" title="Den Artikel 'bar' auf example.com" foo="bar">foo</foo>`{:.language-xml}  
                  >   
                  > Es gibt noch weitere Möglichkeiten - aber ich lasse dich gerne selbst denken.  
                  >   
                  > Um einen Regulären Ausdruck zu erstellen ist es essentiell wichtig, eine exakte logische Vorstellung von dem zu haben, was man eigentlich will. Wenn man diese hat, prüft man anhand dieses logischen Musters alle Möglichkeiten, die dadurch entstehen können. Erst dann, baut man daraus den eigentlichen Ausdruck.  
                  >   
                  > Mit zunehmender Erfahrung kann man diese Schritte vereinen - aber eine genaue Dokumentation im Quellcode (was eine Funktion oder eine Regulärer Ausdruck tun soll) sollte immer vorhanden sein, damit man auch später noch weis, wie's gemeint war.
                  
                  1. »» Bitte zitiere vernünftig.

                    Erneut: zitiere bitte vernünftig.

                    es soll nichts ersetzt werden was zwischen < und > steht.

                    Vorher sagtest du noch folgendes:

                    »» »» Ich muss das Wort matchen welches nicht in einem html tag auftaucht.

                    Ein HTML-Tag ist aber mitnichten durch < und > begrenzt

                    Ich habs jetzt hinbekommen, in dem ich mit einer for Schleife und substr() mir einfach jedes Zeichen der Zeile ansehe. wenn ein < kommt ignoriere ich einfach alles bis wieder ein > kommt.

                    Der Ansatz ist aber defekt:

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
                           "http://www.w3.org/TR/html4/loose.dtd">  
                    <html>  
                      <head>  
                        <title>Example</title>  
                      </head>  
                      <body>  
                        <p/foo/  
                        <p>bar</p>  
                      </body>  
                    </html>
                    

                    Deine Routine würde beim Ersetzen von 'foo' durch 'baz' folgendes ausspucken:

                    [...]

                      <body>  
                        <p/foo/  
                        <p>bar</p>  
                      </body>
                    

                    [...]

                    Das Ergebnis sollte aber so aussehen:
                    [...]

                      <body>  
                        <p/baz/  
                        <p>bar</p>  
                      </body>
                    

                    [...]

                    1. Erneut: ich meine alles was zwischen < und > steht soll ignoriert werden.

                      Dein Beispiel welches du hier bringst, ist kein gültiges html, wie der Test mit tidy beweist:

                      line 8 column 5 - Warning: <p> attribute "/foo/" lacks value
                      line 8 column 5 - Warning: <p> missing '>' for end of tag
                      line 8 column 5 - Warning: trimming empty <p>

                      Das hätte ich aber ohne tidy auch angenommen, dass das ungültig ist:

                      <p/foo/
                      was soll das bitte schön sein ??? - auf jeden Fall nicht html.

                      Ich suche aber noch nach einer besseren Lösung für das Problem.
                      Ich habe fast das Gefühl, dass ich der erste bin, der dieses Problem hat. Ein gültiges html vorausgesetzt, hat mein Ansatz aber bisher tadellos funktioniert. Ich versuche aber auf jeden Fall noch einen bessere Lösung zu finden. Ich behaupte ja nicht das mein bisheriger Ansatz perfekt ist.

                      Gruß.

                      »» »» Bitte zitiere vernünftig.
                      Erneut: zitiere bitte vernünftig.

                      »» es soll nichts ersetzt werden was zwischen < und > steht.
                      Vorher sagtest du noch folgendes:

                      »» »» »» Ich muss das Wort matchen welches nicht in einem html tag auftaucht.

                      Ein HTML-Tag ist aber mitnichten durch < und > begrenzt

                      »» Ich habs jetzt hinbekommen, in dem ich mit einer for Schleife und substr() mir einfach jedes Zeichen der Zeile ansehe. wenn ein < kommt ignoriere ich einfach alles bis wieder ein > kommt.

                      Der Ansatz ist aber defekt:

                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

                      "http://www.w3.org/TR/html4/loose.dtd">
                      <html>
                        <head>
                          <title>Example</title>
                        </head>
                        <body>
                          <p/foo/
                          <p>bar</p>
                        </body>
                      </html>

                      
                      >   
                      > Deine Routine würde beim Ersetzen von 'foo' durch 'baz' folgendes ausspucken:  
                      >   
                      > [...]  
                      > ~~~html
                      
                        <body>  
                      
                      >     <p/foo/  
                      >     <p>bar</p>  
                      >   </body>
                      
                      

                      [...]

                      Das Ergebnis sollte aber so aussehen:
                      [...]

                      <body>

                      <p/baz/
                          <p>bar</p>
                        </body>

                      
                      > [...]
                      
                      1. 你好 alpha,

                        Dein Beispiel welches du hier bringst, ist kein gültiges html, wie der Test mit tidy beweist:

                        Tidy bringt dir eine Warnung. Kein Fehler. Das ist gültiges HTML.

                        再见,
                         克里斯蒂安

                        1. naja ist warscheinlich eine philosophische Frage. Ich persönlich stelle keine Seiten ins Netz, die von Tidy angewarnt werden. Und ein html tag sollte nun mal geschlossen werden. Mag sein dass es kein richtiger Fehler ist, unsauber ist es auf jeden Fall.

                          Abbildung: aspgui

                          btw. Ich benutze diese Funktion für ein grafisches Aspell Frontend welches ich mit  Perl Tk baue. Aspell selbst verhält sich hier aber genauso. Im sgml modus wird alles ignorieret was zwischen < und > steht.

                          Gruß.

                          你好 alpha,

                          »» Dein Beispiel welches du hier bringst, ist kein gültiges html, wie der Test mit tidy beweist:

                          Tidy bringt dir eine Warnung. Kein Fehler. Das ist gültiges HTML.

                          再见,
                          克里斯蒂安

                          1. 你好 alpha,

                            naja ist warscheinlich eine philosophische Frage.

                            Nicht wirklich…

                            Und ein html tag sollte nun mal geschlossen werden. Mag sein dass es kein richtiger Fehler ist, unsauber ist es auf jeden Fall.

                            Er wird geschlossen. Wenn du nähere Informationen haben möchtest, informiere dich über SGML und das SHORTTAG-Feature. Aus dem Beispiel oben wird folgender Parse-Baum:

                              
                            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
                                   "http://www.w3.org/TR/html4/loose.dtd">  
                            <html>  
                              <head>  
                                <title>Example</title>  
                              </head>  
                              <body>  
                                <p>foo</p>  
                                <p>bar</p>  
                              </body>  
                            </html>  
                            
                            

                            Deshalb ist es in HTML ja auch flasch, <br /> zu schreiben, das ist nämlich gleichbedeutend mit <br>/ (wegen SHORTTAG).

                            再见,
                             克里斯蒂安

                            1. hmm, das habe ich so noch nicht gehört oder gesehen. Ich sehe jetzt da auch keinen Sinn warum das so geschrieben werden soll:

                              <p/foo/

                              Aber wenn es das wirklich offiziell gibt, nehme ich meine Aussage natürlich zurück. Dann bin ich da Falsch gelegen. Man lernt halt nie aus. Wobei da ja trotzdem der bittere Nachgeschmack bleibt, das tidy das gleich anmeckert. (Auch wenn es nur eine Warnung ist)
                              Bei mir würde sowas aber gleich von aspell ignoriert und in meinem Frontend gar nicht erst ankommen.

                              diese Schreibweise:
                              <br />
                              ist halt normales xhtml.

                              sowas ist mir aber nicht geläufig: <p/foo/
                              Aspell kennt das scheinbar auch nicht.

                              Gruß

                              你好 alpha,

                              »» naja ist warscheinlich eine philosophische Frage.

                              Nicht wirklich…

                              »» Und ein html tag sollte nun mal geschlossen werden. Mag sein dass es kein richtiger Fehler ist, unsauber ist es auf jeden Fall.

                              Er wird geschlossen. Wenn du nähere Informationen haben möchtest, informiere dich über SGML und das SHORTTAG-Feature. Aus dem Beispiel oben wird folgender Parse-Baum:

                              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                                     "http://www.w3.org/TR/html4/loose.dtd">
                              <html>
                                <head>
                                  <title>Example</title>
                                </head>
                                <body>
                                  <p>foo</p>
                                  <p>bar</p>
                                </body>
                              </html>

                              
                              >   
                              > Deshalb ist es in HTML ja auch flasch, <br /> zu schreiben, das ist nämlich gleichbedeutend mit <br>/ (wegen SHORTTAG).  
                              >   
                              > 再见,  
                              >  克里斯蒂安  
                              > 
                              
                              1. 你好 alpha,

                                hmm, das habe ich so noch nicht gehört oder gesehen. Ich sehe jetzt da auch keinen Sinn warum das so geschrieben werden soll:

                                <p/foo/

                                Wie gesagt: informiere dich über SHORTTAG.

                                diese Schreibweise:
                                <br />
                                ist halt normales xhtml.

                                Richtig, XHTML ist aber XML, und bei XML ist SHORTTAG deaktiviert. In HTML ist es nicht deaktiviert => <br /> ist <br>/

                                再见,
                                 克里斯蒂安

                                1. Wie gesagt: informiere dich über SHORTTAG.

                                  gibt es da was darüber hier im selfhtml? Da finde ich irgendwie nichts. Suchmaschine findet auch nichts brauchbares.

                                  Gruß.

                                  1. 你好 alpha,

                                    Wie gesagt: informiere dich über SHORTTAG.

                                    gibt es da was darüber hier im selfhtml? Da finde ich irgendwie nichts. Suchmaschine findet auch nichts brauchbares.

                                    Nicht, dass ich wüsste. http://de.wikipedia.org/wiki/SGML-Element#Auszeichnung_und_Parsing gibt einen Einblick, ansonsten würde ich den Standard direkt empfehlen.

                                    再见,
                                     克里斯蒂安

                                    1. Danke für den Link. Das ist ja echt ineressant. Ich kann mir aber nicht vorstellen, dass sowas vom W3C empfohlen wird, da ja aus dem Artikel schon hervorgeht dass so ein code nicht von jedem Browser richtig interpretiert wird.

                                      Gruß.

                                      你好 alpha,

                                      »» > Wie gesagt: informiere dich über SHORTTAG.
                                      »»
                                      »» gibt es da was darüber hier im selfhtml? Da finde ich irgendwie nichts. Suchmaschine findet auch nichts brauchbares.

                                      Nicht, dass ich wüsste. http://de.wikipedia.org/wiki/SGML-Element#Auszeichnung_und_Parsing gibt einen Einblick, ansonsten würde ich den Standard direkt empfehlen.

                                      再见,
                                      克里斯蒂安

                                      1. 你好 alpha,

                                        Danke für den Link. Das ist ja echt ineressant. Ich kann mir aber nicht vorstellen, dass sowas vom W3C empfohlen wird, […]

                                        Wird es nicht. Hab ich ja auch gar nicht behauptet! Aber es gibt diese Notation, und das ist (einer) der Gründe, warum man lieber einen richtigen™ Parser als RegExpen nutzen sollte, um HTML zu parsen.

                                        再见,
                                         克里斯蒂安

                                        1. Aber es gibt diese Notation, und das ist (einer) der Gründe, warum man lieber einen richtigen™ Parser als RegExpen nutzen sollte, um HTML zu parsen.

                                          Das ist das, worauf ich hinaus wollte :)

                                  2. gibt es da was darüber hier im selfhtml?

                                    Auch meines Wissens schweigt sich SELFHTML darüber aus - aber du kannst dich hier schlau machen:
                                    SGML and HTML Explained: 9.3.3 Null end-tags

                                    Und hier noch ein Thread aus dem Forums-Archiv, der beschäftigt sich mit NET.
                                    http://forum.de.selfhtml.org/archiv/2008/11/t179933/#m1188163

                              2. Bei mir würde sowas aber gleich von aspell ignoriert und in meinem Frontend gar nicht erst ankommen.

                                Wie auch viele Browser ist Aspell kein funktionierender SGML-Parser :) Eine Software zur Rechtschreibprüfung ist nunmal nicht geeignet, die Syntax zu prüfen :)

                            2. Deshalb ist es in HTML ja auch flasch, <br /> zu schreiben, das ist nämlich gleichbedeutend mit <br>/ (wegen SHORTTAG).

                              Nicht ganz - das hängt vom Dokumenttyp ab und kann als "<br>" oder als <br>> interpretiert werden, da der Slash das br-Element implizit beendet.

  2. Hi alpha,

    ich weiß nicht was du vorhast. Vermutlich soll noch eine Weiterverarbeitung stattfinden.

    Bevor du das Rad neu erfindest, schau mal bei cpan vorbei. Da findest du Module, die HTML Dokumente Parsen.

    Für ein kleinen Test habe ich letztens HTML::TokeParser verwendet.

    MfG
    Otto

    1. Hallo,

      Danke für den Tipp, das werde ich mir mal ansehen.

      Gruß.

      Hi alpha,

      ich weiß nicht was du vorhast. Vermutlich soll noch eine Weiterverarbeitung stattfinden.

      Bevor du das Rad neu erfindest, schau mal bei cpan vorbei. Da findest du Module, die HTML Dokumente Parsen.

      Für ein kleinen Test habe ich letztens HTML::TokeParser verwendet.

      MfG
      Otto

  3. 你好 alpha,

    ich suche nach einer regular expression, die erkennt, ob ein gesuchtes wort innerhalb eines html tags steht. Ist bestimmt ein relativ einfacher Ausdruck, ich bekomm es aber irgenwie nicht hin.

    Reguläre Ausdrücke eignen sich nicht zum Parsen von HTML. Nutze dafür das von Otto vorgeschlagene Modul.

    再见,
     克里斯蒂安