找回密码
 加入
搜索
查看: 2649|回复: 11

[AU3基础] 字符串截取 已解决

[复制链接]
发表于 2018-9-5 12:07:42 | 显示全部楼层 |阅读模式
本帖最后由 macran 于 2018-9-6 10:49 编辑


类似这样: "2018/8/23  15:44:17"的字符串,怎么把2018/8/23提取出来。 空格好想不能分割。很久没用autoit了。这样的问题是不是很弱智啊。别喷!
发表于 2018-9-7 10:48:10 | 显示全部楼层
wu5cheng3 发表于 2018-9-6 12:11
skyfree 的代码变量名与方法名称好标准!~

AU3变量不区分变量类型,但最好自己心里有点数,否则写大点的程序时很麻烦。
发表于 2018-9-5 12:43:28 | 显示全部楼层
StringSplit (  "2018/8/23  15:44:17", " ")
发表于 2018-9-5 13:06:56 | 显示全部楼层
\d+/\d+/\d+
发表于 2018-9-5 15:06:26 | 显示全部楼层
AutoItSetOption('MustDeclareVars', 1)

_Main()
Exit

Func _Main()
        
        Local $sDateTime = '2018/8/23  15:44:17'
        Local $sDate = ''
        
        Local $aTemp = StringRegExp($sDateTime, '^\d{4}/\d{1,2}/\d{1,2}', 3)
        If Not (@error) Then $sDate = $aTemp[0]
        
        If $sDate <> '' Then MsgBox(64, 'Date', $sDate)
        
        
EndFunc   ;==>_Main
发表于 2018-9-5 15:11:50 | 显示全部楼层
本帖最后由 skyfree 于 2018-9-5 15:13 编辑

AutoItSetOption('MustDeclareVars', 1)

#include <Date.au3>

_Main()
Exit

Func _Main()
        
        Local $sDateTime = '2018/8/23  15:44:17'
        Local $sDate = ''
        Local $aDatePart, $aTimePart

        _DateTimeSplit($sDateTime, $aDatePart, $aTimePart)
        If Not (@error) Then $sDate = $aDatePart[1] & '/' & $aDatePart[2] & '/' & $aDatePart[3]
        
        If $sDate <> '' Then MsgBox(64, 'Date', $sDate)
        
EndFunc   ;==>_Main


注意这种方法提取出来的日期可能和你原有书写方式不一致,例如如果你写 2018/08/23 提取后则是 2018/8/23。

发表于 2018-9-5 15:54:56 | 显示全部楼层
惊现天空老大
发表于 2018-9-5 19:32:57 | 显示全部楼层
如果只是这样的字符串,就不需要做其它判断了
StringRegExp('2018/8/23  15:44:17', '^\S+', 1)

评分

参与人数 1金钱 +20 收起 理由
lpxx + 20 谁说短的不好?

查看全部评分

发表于 2018-9-5 21:16:16 | 显示全部楼层
skyfree 发表于 2018-9-5 15:11
注意这种方法提取出来的日期可能和你原有书写方式不一致,例如如果你写 2018/08/23 提取后则是 2018/8/ ...

名人连出俩答案,佩服
发表于 2018-9-5 21:16:56 | 显示全部楼层
afan 发表于 2018-9-5 19:32
如果只是这样的字符串,就不需要做其它判断了

代码好精炼,五体投地
发表于 2018-9-6 12:11:45 | 显示全部楼层
skyfree 的代码变量名与方法名称好标准!~
发表于 2019-1-23 00:54:25 | 显示全部楼层
本帖最后由 gzh888666 于 2019-1-23 12:55 编辑
skyfree 发表于 2018-9-5 15:11
注意这种方法提取出来的日期可能和你原有书写方式不一致,例如如果你写 2018/08/23 提取后则是 2018/8/ ...

Local $Str = '2018/8/23  15:44:55'

Local $Test = StringRegExpReplace($str, '[^\S]+', ' ');练手保证一下$aTimePart的正确性
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-20 17:23 , Processed in 0.080554 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表