#string #autoit
#строка #автоматический запуск
Вопрос:
Я использую AutoIt на флэш-сайте и читаю его текст с помощью Capture2Text. Некоторые If
-construct проверяют, присутствует ли определенная кнопка. Я получаю текст, подобный этому:
XXXXX 0,20 XXXXXXX 0,24 Button12 0,21 XXX
X
это символы фиксированного размера. Мне нужны 3 числа в переменных. Вы можете игнорировать Button12
(также фиксированный размер). Результат должен быть:
$Var1 = 0,20
$Var2 = 0,24
$Var3 = 0,21
Значение находится между 0,20
и 900,00
(поэтому нет фиксированного размера), и мне нужно получить его без пробелов и т.д.
Ответ №1:
Для данного вида текста (ваш X может быть любым символом «word») это работает так:
$sText = 'XXXXX 0,20 XXXXXXX 0,24 Button12 0,21 XXX'
$aMatch = StringRegExp($sText, 'w s(d ,d )sw s(d ,d )sw s(d ,d )', 3)
If Not @error Then
For $i = 0 To UBound($aMatch) -1
ConsoleWrite('Var ' amp; $i 1 amp; ': ' amp; $aMatch[$i] amp; @CRLF)
Next
EndIf
Ответ №2:
просто чтобы предложить альтернативу:
#include <array.au3>
$sText = 'XXXXX 0,20 XXXXXXX 0,24 Button12 0,21 XXX'
$aResult=StringRegExp($sText, " d{1,3},d{2} ",3)
_ArrayDisplay($aResult)
извлекает числа с 1-3 цифрами до и ровно 2 цифрами после запятой, заключенной в пробелы (согласно вашему описанию, есть некоторые, но это также работает, если вы опускаете их в шаблоне). Длина «X»-строк не имеет значения.