Mr. Anderson
Новичок
- Сообщения
- 122
- Репутация
- 4
Вот программа проверки регулярных выражений. В справке сказано что
Будет возвращать массив, не и он почему то не возвращается.... Вернее только один элемент...
Код:
$aCompare = StringRegExp($sText, $sPattern, 1)
Будет возвращать массив, не и он почему то не возвращается.... Вернее только один элемент...
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <IE.au3>
#include <String.au3>
_IEErrorHandlerRegister ()
$oIE = _IECreateEmbedded ()
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 405, 192, 114)
$Label1 = GUICtrlCreateLabel("Регулярное выражение:", 8, 8, 127, 17)
$Input1 = GUICtrlCreateInput("", 136, 8, 481, 21)
$Edit1 = GUICtrlCreateEdit("", 8, 56, 609, 153, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
$Label2 = GUICtrlCreateLabel("Текст для поиска", 8, 32, 94, 17)
$GUIActiveX = GUICtrlCreateObj($oIE, 8, 240, 609, 153)
$Label3 = GUICtrlCreateLabel("Нашлось:", 16, 216, 53, 17)
GUISetState(@SW_SHOW)
GUIRegisterMsg(0x0111, "Work")
#EndRegion ### END Koda GUI section ###
Func Work()
If StringLen(GUICtrlRead($Input1)) >= 1 And StringLen(GUICtrlRead($Edit1)) >= 1 Then
$sText = GUICtrlRead($Edit1)
$sPattern = GUICtrlRead($Input1)
$aCompare = StringRegExp($sText, $sPattern, 1)
If UBound($aCompare) > 0 Then
$iFind = 1
$sVisibleTxt = ""
For $i = 0 To UBound($aCompare) - 1
$sAddToVisibleText = StringRegExpReplace($sText, $sPattern, "<FONT COLOR=RED>" & $aCompare[$i] & "</FONT>")
If $sVisibleTxt = "" Then
$sVisibleTxt = $sAddToVisibleText
Else
_StringInsert($sVisibleTxt, $sAddToVisibleText, -(StringLen($sVisibleTxt))/2)
_StringInsert($sVisibleTxt, "
", -(StringLen($sVisibleTxt))/2)
EndIf
Next
_StringInsert($sVisibleTxt, "
" & UBound($aCompare), -(StringLen($sVisibleTxt))/2)
$sVisibleTxt = StringReplace($sVisibleTxt, @CRLF, "
")
Else
$iFind = 0
EndIf
If $iFind = 1 Then
$File = FileOpen(@ScriptDir & "/" & "tmp.html", 2)
FileWrite($File, $sVisibleTxt)
FileClose($File)
Else
$File = FileOpen(@ScriptDir & "/" & "tmp.html", 2)
FileWrite($File, $sText)
FileClose($File)
EndIf
_IENavigate($oIE, @ScriptDir & "/" & "tmp.html")
EndIf
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd