如何从这个字符串中提取数字?
How to extract numbers from this string?
我在 Flash 站点上使用 AutoIt,并使用 Capture2Text 读取其文本。一些 If
-构造检查某个按钮是否存在。我收到这样的文字:
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
之间(因此没有固定大小),我需要在没有空格等的情况下获取它。
对于给定的文本类型(您的 X 可以是任何 "word" 个字符),它的工作原理是:
$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
只是提供一个替代方案:
#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" 字符串的长度无关紧要。
我在 Flash 站点上使用 AutoIt,并使用 Capture2Text 读取其文本。一些 If
-构造检查某个按钮是否存在。我收到这样的文字:
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
之间(因此没有固定大小),我需要在没有空格等的情况下获取它。
对于给定的文本类型(您的 X 可以是任何 "word" 个字符),它的工作原理是:
$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
只是提供一个替代方案:
#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" 字符串的长度无关紧要。