我在Flash网站上使用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
之间(因此没有固定大小),我需要在没有空格等的情况下获取它。
答案 0 :(得分:2)
对于给定类型的文本(您的X可以是任何"单词"字符),它的工作原理如下:
$sText = 'XXXXX 0,20 XXXXXXX 0,24 Button12 0,21 XXX'
$aMatch = StringRegExp($sText, '\w+\s(\d+,\d+)\s\w+\s(\d+,\d+)\s\w+\s(\d+,\d+)', 3)
If Not @error Then
For $i = 0 To UBound($aMatch) -1
ConsoleWrite('Var ' & $i+1 & ': ' & $aMatch[$i] & @CRLF)
Next
EndIf
答案 1 :(得分:0)
只是提供另一种选择:
#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”字符串的长度并不重要。