StringRegExpReplace mal wieder!

  • Hey ho!

    Hab n bisl gesucht aber kein regexpreplace-thema gefunden das soviel wie ich ersetzen wollte (hoffe das stimmt)..
    Also wie kann man das:

    [autoit]

    $HTML = StringReplace($HTML, "<h3>", "")
    $HTML = StringReplace($HTML, "</h3>", "")
    $HTML = StringReplace($HTML, "<ul>", "")
    $HTML = StringReplace($HTML, "</ul>", "")
    $HTML = StringReplace($HTML, "<li>", "")
    $HTML = StringReplace($HTML, "</li>", "")
    $HTML = StringReplace($HTML, "<a>", "")
    $HTML = StringReplace($HTML, "</a>", "")
    $HTML = StringReplace($HTML, "<td>", "")
    $HTML = StringReplace($HTML, "</td>", "")

    [/autoit]

    in StringRegExpReplace ausdrücken?

    Lg, Apfel

    Einmal editiert, zuletzt von Apfeltasche (5. März 2009 um 17:46)

  • Sollen nur genau die Tags ersetzt werden? Was genau ist dann "<a>" ? etwa "<a href=...." oder "<a name=..."?

    Ich schätz mal ...
    Einfach "verodern":

    [autoit]

    $HTML = StringRegExpReplace($HTML, "<(h3|/h3|ul|/ul|li|/li|a(.*?)|/a|td|/td)>", "")

    [/autoit]

    Einmal editiert, zuletzt von Stilgar (5. März 2009 um 17:32)

    • Offizieller Beitrag

    Oder noch etwas verallgemeinern:

    [autoit]


    $HTML = '<h3>yxcv</h3> <ul>vbnm hjkl</ul> <li>jklö</li> <a href="frefee">asdf</a> <td width="45%">wert</td>'
    $HTML = StringRegExpReplace($HTML, '<\/*(h3|ul|li|a|td)+.*?>', '')
    MsgBox(0,0,$HTML)

    [/autoit]


    Dann klappt's auch mit einem z.B. erweiterten <td>

  • Vielen Dank euch beiden!
    In meinem fall glaube ich kommt sicher kein erweitertes <td>, also nehme ich stilgars version, weil ich die wesentlich besser verstehe xD

    ah und das <a> kommt von <a href, weiß auch nich wie das ">" hinten drangekommen is, also hab ich das stringregexp nochn bisl verändert:

    [autoit]

    $HTML = StringRegExpReplace($HTML, "<(h3|/h3|ul|/ul|li|/li|td|/td)>|<a|/a>", "")

    [/autoit]

    Klappt subba, Ty

  • So funktionierts dann nicht mehr, da ja zwischen <a und > noch was drinsteht, also brauchst du für alles dazwichen noch einen Ausdruck.

    Nimm einfach RegEx die von Oscar.

    oder kurz erklärt
    das /? für Schragstrich oder nicht steht und .*? für eben alles: also

    [autoit]

    $HTML = StringRegExpReplace($HTML, "</?(h3|ul|li|a|td).*?>", "")

    [/autoit]
  • Also bei mir funktionierts problemlos ;P Will ja nur <a los werden, nich das was dahinter steht...

    Aber bei Oscars Variante bricht mein dummes scite jedes mal ab , deswegn lasse ich einfach mal deine abgewandelte version :D