hilfe zu regex...

  • hallo

    ich habe folgendens script:

    Spoiler anzeigen
    [autoit]

    $oie=_IECreate("http://fileupload2.fi.funpic.de/haupt.html")
    $html=_IEDocReadHTML($oie)
    MsgBox(0,"",$html)
    $result = StringRegExp($html,'.*<a href="(.*)">Mirror.*',1)
    MsgBox(0,"",$result[0])

    [/autoit]


    es soll aus dem qelltext dieser seite einen link heraussuchen der zwischen <a href=" und ">Mirror ligt aber leder kommt jedes mal die meldung
    das mein script ein array verwendet das nicht existiert...

    an was kann das liegen ?

    weil eigendlich ist der link enthalten...


    mfg

    derda

    Einmal editiert, zuletzt von derda (9. Juni 2007 um 15:30)

  • wieso nimmst du nicht StringBetween???

    bzw includest array.au3


    Waluev :rock:

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    • Offizieller Beitrag

    Habe noch ein '(?i)' = Groß-/Kleinschreibung ignorieren eingefügt!

    Spoiler anzeigen
    [autoit]

    #include <ie.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oie=_IECreate("http://fileupload2.fi.funpic.de/haupt.html")
    $html=_IEDocReadHTML($oie)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"",$html)

    [/autoit] [autoit][/autoit] [autoit]

    $result = StringRegExp($html,'(?i).*<a href="(.*)">Mirror.*',1)
    MsgBox(0,"",$result[0])

    [/autoit]
  • thx

    das war der fehler


    //edit:

    jetzt hab ich nochmal ein problem:

    $link=StringRegExp($html,'(?!).*value="(.*)".*',1)

    geht auch nicht (value="http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt")

    an was leigt das?
    mfg

    Einmal editiert, zuletzt von derda (9. Juni 2007 um 16:09)

    • Offizieller Beitrag

    Es sollte (?i) heissen und nicht (?!), oder?

    Evtl. mal den Seitenquellcode posten!

  • hi

    das kann sein aber wie machich das?

    //auch mit diesem umgedrehtem ! geht es nicht :(

    hier mal der quellcode:

    Spoiler anzeigen

    head>
    <title></title>
    </head>

    <body bgcolor="#000000">
    <p align="center">
    <table border="1" width="800" height="11" background="back.gif">
    <tr>
    <td width="100%" height="118">
    &nbsp;
    </td>
    </tr>
    <tr>
    <td width="100%" height="436">
    <p align="center">Hier können Sie ihre Dateien kostenlos auf einen Server
    Hochladen um sie dann zu verlinken oder weiterzuschicken.<p align="center">Die Maximale Größe einer Datei darf höchstens
    1.5 Megabyte betragen.&nbsp;<p align="center"> Wenn die Datei größer als 1.5
    Megabyte ist, wird die Datei ignoriert.
    <p align="center">Illegale Dateien sind nicht gestattet und werden so
    schnell wie möglich entfernt.</p>
    <p align="center">Bitte haben Sie geduld, das Hochladen kann mehrere Minuten in Anspruch nehmen!.</p>
    <p>
    <p align="center">Die Datei wurde erfolgreich auf den Server geladen.<br>Url der Datei: <a href="http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt"target="_blank"">http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt</a><br><br><br>Dies ist der Pfad zu ihrer Datei.<br><input name="kopie" value="http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt" type="datei" size=80><br><br><a href="http://fileupload2.fi.funpic.de/Upload.php">Zurück</a></p> </tr>
    <tr>
    <td width="100%" height="48">
    <p align="center">&nbsp;</td>
    </tr>
    </table>

    mfg

    Einmal editiert, zuletzt von derda (9. Juni 2007 um 16:28)

    • Offizieller Beitrag

    Wieso umgedrehtes !, dass ist der Buchstabe i wie Igel!

    Probiers mal so:

    [autoit]

    $link=StringRegExp($html,'(?i).*value="(.*)" type.*',1)

    [/autoit]
  • uarg...

    das is peinlich

    ich werds gleich mal versuchen...
    // funktioniert nicht...

    mfg

    Einmal editiert, zuletzt von derda (9. Juni 2007 um 17:21)

    • Offizieller Beitrag

    Bei mir wird's korrekt zurückgegeben!

    Spoiler anzeigen
    [autoit]

    $html = '<head>' & @CRLF & _
    '<title></title>' & @CRLF & _
    '</head>' & @CRLF & _
    '' & @CRLF & _
    '<body bgcolor="#000000">' & @CRLF & _
    '<p align="center">' & @CRLF & _
    '<table border="1" width="800" height="11" background="back.gif">' & @CRLF & _
    '<tr>' & @CRLF & _
    '<td width="100%" height="118">' & @CRLF & _
    '&nbsp;' & @CRLF & _
    '</td>' & @CRLF & _
    '</tr>' & @CRLF & _
    '<tr>' & @CRLF & _
    '<td width="100%" height="436">' & @CRLF & _
    '<p align="center">Hier können Sie ihre Dateien kostenlos auf einen Server' & @CRLF & _
    'Hochladen um sie dann zu verlinken oder weiterzuschicken.<p align="center">Die Maximale Größe einer Datei darf höchstens' & @CRLF & _
    '1.5 Megabyte betragen.&nbsp;<p align="center"> Wenn die Datei größer als 1.5' & @CRLF & _
    'Megabyte ist, wird die Datei ignoriert.' & @CRLF & _
    '<p align="center">Illegale Dateien sind nicht gestattet und werden so' & @CRLF & _
    'schnell wie möglich entfernt.</p>' & @CRLF & _
    '<p align="center">Bitte haben Sie geduld, das Hochladen kann mehrere Minuten in Anspruch nehmen!.</p>' & @CRLF & _
    '<p>' & @CRLF & _
    '<p align="center">Die Datei wurde erfolgreich auf den Server geladen.<br>Url der Datei: <a href="http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt"target="_bla' & @CRLF & _
    'nk"">http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt</a><br><br><br>Dies ist der Pfad zu ihrer Datei.<br><input name="kopie" value="http://fileupload2.fi.funpic.de/myfile.txt1181396960.txt" type="datei" size=80><br><br><a href="http://fileupload2.fi.funpic.de/Upload.php">Zurück</a></p> </tr>' & @CRLF & _
    '<tr>' & @CRLF & _
    '<td width="100%" height="48">' & @CRLF & _
    '<p align="center">&nbsp;</td>' & @CRLF & _
    '</tr>' & @CRLF & _
    '</table>'

    [/autoit] [autoit][/autoit] [autoit]

    $link=StringRegExp($html,'(?i).*value="(.*)" type.*',1)
    MsgBox(0,"",$link[0])

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • hi

    bei mir gings nicht... ist aber auch erstmal egal...ich hab jetzt das:
    $link=StringRegExp($html,'(?i).*>(.*)</a><br><br><br>.*',1)


    mfg

    @admin/mod bitte nochnicht schließen ich glaub da kommt bestimmt noch was :)

    //ein regexp hab ich jetzt alleine geschaft :) beim nächsten brauch ich wieder eure hife:
    $messageIE = StringRegExp($htmlIE,"(?i).*\: (.*)<script>.*",1)

    es soll den testtxt herausfischen:

    "><B>test</B>: testtext<SCRIPT>delmake

    wenn das so weiter geht kommen hier noch n paar fragen auf euch zu ;)

    Einmal editiert, zuletzt von derda (9. Juni 2007 um 18:14)

    • Offizieller Beitrag

    Ist das jetzt der bei dem Du Hife brauchst oder der den Du selbst geschaft hast?

    • Offizieller Beitrag

    Der ist doch richtig!

    [autoit]

    $messageIE = StringRegExp('"><B>test</B>: testtext<SCRIPT>delmake',"(?i).*\: (.*)<script>.*",1)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$messageIE[0])

    [/autoit][autoit][/autoit][autoit][/autoit]
  • aber hier

    Spoiler anzeigen

    [code=html]
    1=<HTML><HEAD><TITLE>Shoutbox.de - FREE SHOUTBOX ! KOSTENLOSE SHOUTBOX ! GRATIS SHOUTBOX !</TITLE><!-- Shoutbox.de -->
    <META http-equiv=content-type content="text/html; CHARSET=ISO-8859-1">
    <META http-equiv=imagetoolbar content=no>
    <META content=NOARCHIVE name=Googlebot>
    <META content=noarchiv name=robots>
    <META content=INDEX,FOLLOW name=Robots><LINK href="http://212.112.234.137/sbs/CSS/monitorgreen.css" type=text/css rel=STYLESHEET>
    <STYLE type=text/css>
    <!--
    HTML {overflow-x:hidden;}
    -->
    </STYLE>
    <BASE target=_self>
    <SCRIPT>
    <!--
    function SetEmo(emo){document.FL.YUhSMGN984B546182342554093428.value+=''+emo;document.FL.YUhSMGN984B546182342554093428.focus();}
    function cleanit(thefield){if(thefield.defaultValue==thefield.value){thefield.value="";};}
    function openWin(tURL,winName,attr){window.open(tURL,winName,attr);}
    function submitit(name){if (document.all||document.getElementById){for(i=0;i<name.length;i++){var tempobj=name.elements[i];if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset"){tempobj.disabled=true;};};};}
    function doBlink(){var blink=document.all.tags("BLINK");for(var i=0;i<blink.length;i++){blink[i].style.visibility=blink[i].style.visibility==""?"hidden":"";};}
    function initBlink(){if(document.all){setInterval("doBlink()",550);};document.FL.NDYyODc1.value='WVRJME5XWXdaRGhtTlRnNVpUbFVWbEpxVGtVNVZWVllhRTFpYXpWMldXcE9WMDFHYkhSUFZGSk5ZbFpLYzFaR1dsTmhhelZHVDFaV1ZsY3dPVlJXVW1wT1JUbFZWVmhvVFdKck5YWlphazVYVFVac2RFOVVVazFpVmtwelZrWmFVMkZyTlVaUFZsWldWekU0VkZaU2FrNUZPVlZWV0doTlltczFkbGxxVGxkTlJteDBUMVJTVFdKV1NuTldSbHBUWVdzMVJrOVdWbFpYTVRjNE9UUXhWRlpTYWs1Rk9WVlZXR2hOWW1zMWRsbHFUbGROUm14MFQxUlNUV0pXU25OV1JscFRZV3MxUms5V1ZsWlg=';}
    function stoperror(){return true;}
    function delmake(endol,tstamp){var dol='ODQuNTcuMTUzLjEwNg=='; if((dol==endol)&&(tstamp>1181407156)){document.write("<BR>[ <A HREF='./?f=d&mid="+tstamp+"&LANG=DE&css=&extcss='>l&ouml;schen</A> ]");};}
    window.onerror=stoperror;

    function clickIE(){if(document.all){return false;};}
    function clickNS(e){if(document.layers||(document.getElementById&&!document.all)){if(e.which==2||e.which==3){return false;};};}
    if (document.layers){document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;
    }else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
    document.oncontextmenu=new Function("return false");
    //-->
    </SCRIPT>
    </HEAD>
    <BODY style="OVERFLOW-X: hidden" leftMargin=0 topMargin=0 onload=initBlink();window.scrollTo(0,99999); MARGINHEIGHT="0" MARGINWIDTH="0"><!-- c -->
    <TABLE class=SB_table0 cellSpacing=0 cellPadding=2 width="100%" ?border='0"'>
    <TBODY>
    <TR>
    <TD class=SB_shoutbox title="09.06.2007 18.07.05"><B>testuser</B>: testtext
    <SCRIPT>delmake('ODQuNTcuMTUzLjEwNg==','1181405225');</SCRIPT>
    </TD></TR></TBODY></TABLE><!--SEMA_STREAM-->
    <FORM style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" name=FL action=./ method=post><INPUT type=hidden value=a name=f><INPUT type=hidden value=a name=Y><INPUT type=hidden value=DE name=LANG><INPUT type=hidden value=B3Ce12a5ffBa name=adou> <!-- /c -->
    <TABLE class=SB_formarea width="100%">
    <TBODY>
    <TR>
    <TD><FONT class=SB_alert></FONT>
    <DIV align=center>
    <SCRIPT>document.writeln('<INPUT TYPE="text" NAME="TVRjNE9UUXhMbk5vYjNWMFltOTRMbVJs2ouidfgkajdf" size="22" MAXLENGTH="30" value="Name" class="SB_input" onkeyup="refresh_nu()" onkeydown="refresh_nu()" title="Name" ONFOCUS="cleanit(this);refresh_nu()"><BR><INPUT TYPE="text" NAME="YUhSMGN984B546182342554093428" size="22" MAXLENGTH="250" value="Nachricht" class="SB_input" onkeyup="refresh_nu()" onkeydown="refresh_nu()" title="Nachricht" ONFOCUS="cleanit(this);refresh_nu()"><br>');</SCRIPT>
    <INPUT class=SB_input onkeydown=refresh_nu() onkeyup=refresh_nu() title=Name onfocus=cleanit(this);refresh_nu() maxLength=30 size=22 value=Name name=TVRjNE9UUXhMbk5vYjNWMFltOTRMbVJs2ouidfgkajdf><BR><INPUT class=SB_input onkeydown=refresh_nu() onkeyup=refresh_nu() title=Nachricht onfocus=cleanit(this);refresh_nu() maxLength=250 size=22 value=Nachricht name=YUhSMGN984B546182342554093428><BR><INPUT class=SB_button onclick=document.FL.submit(); type=button value=":: senden" name=ok ONSUBMIT="submitit(this)">&nbsp;<INPUT class=SB_button type=reset value=":: reset" name=Submit2><BR><SPAN class=SB_shoutbox><A onclick="openWin('./?f=p&amp;LANG=DE&amp;s=X','myshoutbox','scrollbars=yes,resizable=yes,width=303,height=605')" href="javascript:void(0);">Archiv</A> - <A href="./?LANG=DE">®</A>
    <SCRIPT>function refresh_nu(){return;};</SCRIPT>
    -<A style="TEXT-DECORATION: none" href="http://www.Shoutbox.de/">&nbsp;</A><A onclick="openWin('./?f=h&amp;LANG=DE','help','scrollbars=yes,width=333,height=400')" href="javascript:void(0);">Hilfe</A></SPAN><BR></DIV></TD></TR></TBODY></TABLE><INPUT type=hidden value=WVRJME5XWXdaRGhtTlRnNVpUbFVWbEpxVGtVNVZWVllhRTFpYXpWMldXcE9WMDFHYkhSUFZGSk5ZbFpLYzFaR1dsTmhhelZHVDFaV1ZsY3dPVlJXVW1wT1JUbFZWVmhvVFdKck5YWlphazVYVFVac2RFOVVVazFpVmtwelZrWmFVMkZyTlVaUFZsWldWekU0VkZaU2FrNUZPVlZWV0doTlltczFkbGxxVGxkTlJteDBUMVJTVFdKV1NuTldSbHBUWVdzMVJrOVdWbFpYTVRjNE9UUXhWRlpTYWs1Rk9WVlZXR2hOWW1zMWRsbHFUbGROUm14MFQxUlNUV0pXU25OV1JscFRZV3MxUms5V1ZsWlg= name=NDYyODc1></FORM><!-- Shoutbox.de - 0.18966507911682 ms --></BODY></HTML>


    kommt trotzdem immer ein error :(
    $messageie ist immer auf eins und$messageie[0] kennt er nicht

    mfg

    • Offizieller Beitrag

    Wenn ich den Code als test.html speichere und folgendes Programm ausführe wird es korrekt angezeigt.

    [autoit]

    $html = FileRead("test.html")

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$html)
    $messageIE = StringRegExp($html,"(?i).*\: (.*)[\s.]*<script>.*",1)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$messageIE[0])

    [/autoit]

    Edit: Zeile angepasst, dass problem ist das nach testtext noch ein Zeilenumbruch kommt!

  • nach deinem script benutzt du aber garnicht $html :P

    edit: ok alles fürs erste beantwortet
    mfg

    2 Mal editiert, zuletzt von derda (10. Juni 2007 um 00:13)