大于小于的新人问题,
本帖最后由 5735988 于 2013-12-22 16:13 编辑Local $aArray = '5418le'
If StringLen($aArray) > 5 And StringLen($aArray) < 9 Then
If $aArray > 100 And $aArray < 99999999 Then
ConsoleWrite("---:" & $aArray & @CRLF)
EndIf
EndIf
----------------------------------------------
为什么 大于100 小于 999999 但是5418le非数字,有字母还能输出,
If $aArray > 100 And $aArray < 99999999 Then 还能输出
-----------------------------------------------
另外请教个正则,想提取数字 50671240 这个数字,有时候是6位数字,7位,8位,而且位置不固定
6106@qq,com 5418le 女 身份证 学生 石天 石天 320820104123 50671240 f阿萨德飞 水电费是否 sdafsdfsf sdf
6106@qq,com 5418le 女 320820104123 身份证 学生 石天 石天50671240 f阿萨德飞 水电费是否 sdafsdfsf sdf
6106@qq,com 5418le f阿萨德飞女 身份证 学生 50671240 石天 石天 320820104123 水电费是否 sdafsdfsf sdf 本帖最后由 Dreamer 于 2013-12-22 16:30 编辑
因為把 $aArray 解釋為數字類型且只解釋到可解釋的部份,也就是5418,而5418大100且小於99999999 所以條件成立。
如果把字符放在5148前面就會解釋為字串類型,條件就不會成立 第一个问题:Dim $aArray = '5418le'
ConsoleWrite(Number($aArray) & "---:" & $aArray & @CRLF)语言参考 - 数据类型
AutoIt 只有一个叫做 Variant(变量) 的数据类型. 一个 Variant(变量) 可以包含数字或字符串, 如何使用这些数据要视情况而定. 例如, 若试图让两个变量相乘, 则它们将被当作数字类型, 而试图连接(拼合)两个变量, 则它们将被视为字符串.
示例:
10 * 20 等于数字 200 (* 用于两个数相乘)
10 * "20" 等于数字 200
"10" * "20" 等于数字 200
10 & 20 相当于 字符串 "1020" (& 用来连接字符串)
如果一个字符串被当作数字使用时, 则隐含调用 Number() 函数操作. 如果字符串不包含有效的数字, 则它会被假定为等于 0. 例如:
10 * "fgh" 等于数字 0.
如果字符串被用于布尔运算, 并且字符串为 "", 则字符串被视为 False (见下文). 例如:
Not "" 相当于布尔值 True.
第二个就不会了,位置不固定,位数不固定,而且行内有多个数字串。。。 第一个问题,理解了。发哥牛。 第二个问题
If Number(StringLen($aArray[$i_NUM])) > 5 And Number( StringLen($aArray[$i_NUM])) < 9Then
If Number($aArray[$i_NUM]) > 100 And Number($aArray[$i_NUM]) < 99999999 Then
EndIf
EndIf
这样处理了, \b\d{6,8}\b
页:
[1]