Что нового

[Данные, строки] поиск значения в активном окне по шаблону в StringRegExp

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
На странице имеются координаты точки типа (хх;уу), , где хх и уу может быть как отрицательным так и положительным.
Создаю ситуацию, пробую её решить, выходит поиск только по конкретному значению, а по шаблону вылетает, либо пишет ошибку на $asResult[0]
Я пологаю что ошибка в моём шаблоне, который сделал по примеру SRE- урока.
Код:
#include <IE.au3>
While 1
GUISetState()
$title=("Прямоугольная система координат")
$oIE = ObjCreate("Shell.Explorer.2")
GUICreate($title, 1200,  800, -1, -1);создаёт внешнее окно размером х,у
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 1200, 800); ;создаёт окно с клиентом размером х1,у1
GUISetState()
WinActivate($title)
ControlClick($title, "" , "[CLASS:MacromediaFlashPlayerActiveX; INSTANCE:1]"); кликает по активному окну,
Sleep (500)
$oIE.navigate("http://shkolo.ru/pryamougolnaya-sistema-koordinat/")
WinActivate($title)
Sleep (500)

;поиск конкретного значения:
$sHTML = _IEBodyReadHTML($oIE)
$asResult = StringRegExp($sHTML, '\Q(-4; 1)\E', 1)
If @error == 0 Then
    MsgBox(0, "SRE 1, пример конкретное значение", $asResult[0])
EndIf

;поиск значения по шаблону:
$sHTML = _IEBodyReadHTML($oIE)
$asResult = StringRegExp($sHTML, '\Q(\E[-0-9]{1,3}\Q;\E[-0-9]{1,3}\Q)\E', 1)
If @error == 0 Then
    MsgBox(0, "SRE 2, пример поиск по шаблону", $asResult[0])
EndIf

Sleep (5000)
WEnd

По конкретному значению находит,ищем в HTML (-4; 1) и находим.
По шаблону не ищет или не выводит. Должно найтись что то типа (x;y)

'\Q(\E[-0-9]{1,3}\Q;\E[-0-9]{1,3}\Q)\E'
Шаблон косячный похоже ? :whistle:
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
А если так
Код:
'\([-0-9]{1,3}; [-0-9]{1,3}\)'
Подсмотрел у Zak. Правильнее будет
Код:
'\(-?\d+?; -?\d+?\)'
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
В регулярках не очень силен:

Код:
#include <IE.au3>
#include <Array.au3>

GUISetState()
	$title = "Прямоугольная система координат"
	$oIE = ObjCreate("Shell.Explorer.2")
	
	GUICreate($title, 1200,  800, -1, -1);создаёт внешнее окно размером х,у
	$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 1200, 800); ;создаёт окно с клиентом размером х1,у1
		GUISetState()
		WinActivate($title)
	ControlClick($title, "" , "[CLASS:MacromediaFlashPlayerActiveX; INSTANCE:1]"); кликает по активному окну,
		Sleep (500)
	$oIE.navigate("http://shkolo.ru/pryamougolnaya-sistema-koordinat/")
		WinActivate($title)
		Sleep (500)
		_IELoadWait($oIE)

$sHTML = _IEBodyReadHTML($oIE)

$asResult = StringRegExp($sHTML, '\(\-?\d*; \-?\d*\)', 3)
	_ArrayDisplay($asResult)
 
Верх