5735988 发表于 2013-12-22 16:12:37

大于小于的新人问题,

本帖最后由 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:27:31

本帖最后由 Dreamer 于 2013-12-22 16:30 编辑

因為把 $aArray 解釋為數字類型且只解釋到可解釋的部份,也就是5418,而5418大100且小於99999999 所以條件成立。
如果把字符放在5148前面就會解釋為字串類型,條件就不會成立

haijie1223 发表于 2013-12-23 00:27:09

第一个问题: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.


第二个就不会了,位置不固定,位数不固定,而且行内有多个数字串。。。

5735988 发表于 2013-12-23 04:41:45

第一个问题,理解了。发哥牛。

5735988 发表于 2013-12-23 04:44:08

第二个问题

                        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



这样处理了,

afan 发表于 2013-12-23 10:56:39

\b\d{6,8}\b
页: [1]
查看完整版本: 大于小于的新人问题,