Ich möchte eine bestimmte Zeichenfolge in einer Webseite finden. Ich entschied mich für RegEx. (Ich weiß, meine RegExes sind ziemlich schrecklich, aber sie arbeiten). Meine zwei Ausdrücke sind sehr schnell, wenn sie in Notepad ++ (wahrscheinlich < 1s) und Regex101 verwendet werden, aber sie sind schrecklich langsam, wenn sie in AutoHotKey verwendet werden - etwa 2-5 Minuten. Wie behebe ich das?Sehr langsam RegEx in AHK noch schnell in Notepad ++
sWindowInfo2 = http://www.archiwum.wyborcza.pl/Archiwum/1,0,4583161,20060208LU-DLO,Dzis_bedzie_Piast,.html
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", sWindowInfo2, false), whr.Send()
whr.ResponseText
sPage := ""
sPage := whr.ResponseText
; get city name (if exists) – the following is very slooooow
if RegExMatch(sPage, "[\s\S]+<dzial>Gazeta\s(.+)<\/dzial>[\s\S]+")
{
sCity := RegExReplace(sPage, "[\s\S]+<dzial>Gazeta\s(.+)<\/dzial>[\s\S]+", "$1")
;MsgBox, % sCity
city := 1
}
if RegExMatch(sPage, "[\s\S]+<metryczka>GW\s(.+)\snr[\s\S]+")
{
sCity := RegExReplace(sPage, "[\s\S]+<metryczka>GW\s(.+)\snr[\s\S]+", "$1")
city := 1
}
EDIT: auf der Seite ich das Spiel vorgesehen ist Lublin
. Sehen Sie sich an: https://regex101.com/r/qJ2pF8/1
Was genau sollten die Regexe übereinstimmen? Aus einigen Beispielen können wir sie nicht verbessern! –
Öffnen Sie die Quelle der Seite und führen Sie RegEx aus. Sie werden "Lublin" bekommen. Sie können auch den von mir bereitgestellten Link verwenden. – menteith
Warum verwenden Sie nicht '.' anstelle von' [\ s \ S] '? –