Что нового

Помогите вытащить E-MAIL из списка

komorov74

Новичок
Сообщения
81
Репутация
0
В принципе код составил из двух готовых примеров.
Но возникает вопрос в неработоспособности.
Код:
#Include<Array.au3>
$nOffset = 1
$bak = ClipGet()
$sUrl = $bak
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('GET', $sUrl, False)
$oHTTP.Send('')
$oHTTP.WaitForResponse
$sHTML = $oHTTP.ResponseText
;ConsoleWrite($sHTML & @CRLF)
;Найти [A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{0,1}) - найти почтовые ящики


While 1

$array = StringRegExp($sHTML, '([A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})',1,$nOffset)
ConsoleWrite($array & @CRLF)


   
    If @error = 0 Then
        $nOffset = @extended
    Else
        Exit
    EndIf
    For $i = 0 to UBound($array) - 1
        msgbox(0, "RegExp, тест с параметром 1 - " & $i, $array[$i])
    Next
WEnd


При запуске просто зацикливается.
В идеале хотелось бы что бы складывал в txt файлик -это я ещё не сотворил.

Помогите пожалуйста разобраться с циклами.
И объясните мне пожалуйста вот эту строчку ([A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})
Прочитал я документацию но не разобрался - пробывал забивать емайлы типа [email protected] -скрипт тоже их считает корректными :(
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Код:
#Include <Array.au3>

$sUrl = ClipGet()
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('GET', $sUrl, False)
$oHTTP.Send('')
$oHTTP.WaitForResponse
$sHTML = $oHTTP.ResponseText

$array = StringRegExp($sHTML, '([A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})', 3)
_arrayDisplay($array)


([A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}) - это шаблон для поиска email
По порядку:
[A-Za-z0-9._-]+ - Значит в область поиска входят буквы от A до Z(большие и маленькие) цифры от 0 до 9 знак точки, подчеркивания, и тире. Знак плюс после класса означает что эти символы должны встретиться как минимум 1 раз и до бесконечности.
@ - соответственно сам знак "собаки"
\. - символ точки
[A-Za-z]{2,4} - шаблон доменной зоны. Может содержать только латинские буквы и только от 2х до 4х символов.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
[\w.-]+@[\w.-]+\.\w{2,4} - в общем паттерн будет такой =)
Код:
#Include <Array.au3>

$sUrl = ClipGet()
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('GET', $sUrl, False)
$oHTTP.Send('')
$oHTTP.WaitForResponse
$sHTML = $oHTTP.ResponseText

$array = StringRegExp($sHTML, '[\w.-]+@[\w.-]+\.\w{2,4}', 3)
_arrayDisplay($array)
 
Верх