找回密码
 加入
搜索
查看: 5210|回复: 8

[GUI管理] GUI日期返回值格式的问题[已解决]

  [复制链接]
发表于 2010-10-6 20:19:38 | 显示全部楼层 |阅读模式
本帖最后由 cihren 于 2010-10-7 22:32 编辑

创建了一个GUI获取一个日期控件的返回值。请问如何将“2010年10月6日星期三”这样的返回值转换成“20101006”样式的。

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-10-6 22:09:07 | 显示全部楼层
$Str = '2010年10月6日星期三'
$sR = StringRegExp($str, '\d+', 3)
If UBound($sR) = 3 Then Msgbox(0, $str, StringFormat('%04d%02d%02d', $sR[0], $sR[1], $sR[2]))
 楼主| 发表于 2010-10-6 23:17:48 | 显示全部楼层
感谢版主,正解!!!

版主这个函数很特别啊,帮助里都没有。网上翻了一下,顺便转载于此供大家学习之用。
============================================================
StringRegExp 函数的重要性就不必多说了吧?可惜AutoIt 汉化版中此函数的帮助没有翻译。
昨天我花了整整一天时间,终于将它翻译完了。为了能够正确的表述,使用的是意译,而且里面也一定存在表述不清、错误等情况,所以:
希望大家能群策群力,修正、补充、完善本帮助!
同时也希望汉化版也能早日更新帮助文件!
复制内容到剪贴板
代码:
StringRegExp
=============
StringRegExp ( "test", "pattern" [, flag ] [, offset ] ])
检验一个字符串是否适合某一特定的正则表达式模式。
test 被检验字符串
pattern 正则表达式模式
flag [可选],决定返回方式,默认为0
offset [可选],开始检验的位置,默认为1,即从头开始

flag 值
0 返回 1 (匹配)或 0 (无匹配)
1 返回数组型匹配
2 同 1,包含所有匹配(Perl / PHP方式)
3 同 1,返回值为匹配的全部
4 同 2 + 3

@Error
=======
Flag = 0:
2 正则表达式错误。@Extended=表达式中出错的位置
Flag= 1 或 2:
0 数组有效。@Extended=下一个位置
1 无匹配,数组无效。
2 表达式错误,数组无效。@Extended=表达式中出错的位置
Flag = 3 或 4:
0 数组有效
1 无匹配,数组无效
2 表达式错误,数组无效。@Extended=表达式中出错的位置

注意
=====
正则表达式是一种精炼的字符串表达方式,表达式使用特殊意义的字符组合,匹配目标字符串中的特定字符组合。Autoit 的正则表达式通常是大小写敏感的。

正则表达式由下面所列的一个或多个简单的规则组成,如果某字符没有存在于下列表格中,那么该字符将只能匹配其自身。

次数修饰符(*, +, ?, {...}) 将尝试最大可能的匹配,使第一次匹配之后的字符也能得到匹配,除非前面是 ?,?... 使用最小匹配模式。

表达式允许嵌套,但请注意,除了没有匹配值的表达式,在返回的数组中,里面的表达式匹配的值在前,而外面的表达式匹配的值在后。

完整的说明可以在这里找到:http://www.autoitscript.com/autoit3/pcrepattern.html

注意:错误的正则表达式可能导致死循环,甚至崩溃。

匹配字符
=========
[...] 匹配[]内的任何字符。如 [aeiou] 匹配任何小写元音字母。可以使用破折号定义起始和结束字符匹配字符集,如 [a-Z] 匹配任何小写字母;又如 [][] 可以匹配 [or]。要注意的是,[]内的特殊字符需要使用转义符 \ 来匹配自身,比如:\\,\^,\-,\[,\]
[^...] 匹配 "..." 外的任何字符。如: [^0-9] 匹配任何非数字。同上,如果是需要匹配字符 "^",则需要使用转义符,如 \^
[:class:] :class: 代表字母类匹配符,其匹配内容请参考下文
[^:class:] 匹配 :class: 之外的字符,but only if the first character.
(...) 组内的元素在匹配时将被一起考虑,如 (ab)+ 将匹配 "ab" 或 "abab" 等,但不会是 "aba"。根据 Flag 的定义,组可以用数组存储匹配的文本,以便之后调用。
(?i) 大小写不敏感标志,这不是组,而是告诉引擎从此处开始的匹配不区分大小写
(?-i) (默认)大小写敏感标志,同样不是组,而是告诉引擎从此处开始的匹配区分大小写
(?i...) 大小写不敏感组,组内元素不区分大小写,其它同普通组
(?-i...) 大小写敏感组,组内元素区分大小写,其它同普通组。主要用在 (i) 后面或者 (?i...) 内
(?:...) 不用捕获的组。类似普通组,只是输出匹配数组也不返回用于 back-referencing 的匹配文字
(?i:…) 同上,但不区分大小写
(?-i:...) 同上,但区分大小写
(?m) 同^ 和 $ ,仅匹配行内数据
(?s) 同 . ,匹配行内的任何数据("." 默认不匹配换行符)
(?x) 忽略空格和 # 注释
(?U) 非贪婪模式
. 除换行符外的任何字符
| 或,用前或后侧表达式匹配
\ 转意符,让元字符匹配自身,或使字符代表特殊功能(见下文)
\\ 实际反斜线( \)
\a 警告,即字符 BEL (chr(7))
\A 只匹配字符串开始处
\b 匹配词的边界(头或尾)
\B 匹配词边界以外的区域
\c 根据下一字符匹配 ASCII 控制符,如 \cM 匹配 Ctrl-M
\d 匹配数字(0-9)
\D 匹配非数字
\e 匹配 Escape (chr(27))
\E 区域终点,需组合使用
\f 匹配换页符 (chr(12))
\h 横向空白字符如 Tab
\H 非横向空白字符
\l 下一字符为小写
\L 匹配时 \L...\E 区域内字符转小写
\n 匹配换行符(@LF,chr(10))
\Q \Q(...)...\E,忽略()内元字符的功能
\r 匹配回车(@CR,chr(13))
\s 匹配任何空白字符:chr(9)-chr(13),即横向Tab,换行符,垂直Tab,换页符,回车,空格(chr(32))
\S 匹配任何非空白字符
\t 匹配制表符(chr(9))
\u 下一字符为大写
\U 匹配时 \U...\E 区域内字符转大写
\v 垂直空白字符
\V 非垂直空白字符
\w 匹配a-z,A-Z,0-9,以及_(下划线)
\W 匹配 \w 以外的字符
\### 匹配由 3 个8进制组成的 ASCII 字符,可匹配 ASCII 字符及 back-reference,如 ([:alpha:])\1 匹配 - (连字符)
\x## 匹配由 2 个16进制数组成的 ASCII 字符
\z 匹配字串尾部
\Z 同上,但可用于多行时匹配行尾

次数修饰符
===========
{x} 重复匹配 x 次
{x,} 重复匹配次数 >= x
{0,x} 重复匹配 0 到 x 次
{x,y} 重复匹配 x 到 y 次
* ={0,},即重复匹配次数 >= 0
+ ={1,},即重复匹配次数 >= 1
? ={0,1},即重复匹配 0 到 1 次
?... 匹配 "..." 的最小匹配可能

字母类匹配符
=============
[:alnum:] 字母和数字
[:alpha:] 字母
[:ascii:] 0 - 127 内的 ASCII 字符
[:blank:] 空格和制表符
[:cntrl:] 控制字符
[:digit:] 数字(同 \d)
[:graph:] 可打印字符,不包括空格
[:lower:] 小写字母
[:print:] 可打印字符,包括空格
[:punct:] 字母和数字以外的打印字符
[:space:] 空白字符(不同于 \s,它包括 VT(chr(11)))
[:upper:] 大写字母
[:word:] 字(同 \w)
[:xdigit:] 16进制数
发表于 2010-10-7 14:08:32 | 显示全部楼层
呵呵温习一下哈
发表于 2010-10-7 15:09:49 | 显示全部楼层
回复 3# cihren

汉化帮助里有的啊,怎么你会找不到呢。。
发表于 2010-10-7 15:59:08 | 显示全部楼层
解决了请及时修改标题为“已解决”
发表于 2010-10-7 16:02:11 | 显示全部楼层
各位楼主辛苦了,谢谢分享。
发表于 2010-10-7 16:02:14 | 显示全部楼层
回复 3# cihren

StringRegExp
--------------------------------------------------------------------------------
检查字串是否符合给定的正则表达式.

StringRegExp ( "字符串", "表达式" [, 标志 ] [, 偏移量 ] ] )
发表于 2014-5-19 21:11:18 | 显示全部楼层
雷锋精神传天下!谢谢分享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 13:51 , Processed in 0.085008 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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