[已解决]正则式提问:正则表达式测试工具V4.0测试结果与实际结果不符
本帖最后由 kingfirekkk 于 2010-9-21 13:30 编辑菜菜我使用"正则表达式测试工具V4.0 By:水木子"测试以下字符串:
\\host11 的当前时间是 2010/9/22 上午 09:45
\\host11 的当前时间是 2010/10/1 上午 09:45
得出匹配结果为:(我要的结果)
2010/9/22 上午 09:45
2010/10/1 上午 09:45
但使用以下代码输出的结果却把我要找出来的东西弄不见了:
Local $str = ''
Local $too = Run(@ComSpec & ' /c net time \\host11, '', 0, 2)
While 1
Sleep(1)
$str &= StdoutRead($too)
If @error Then ExitLoop
WEnd
$t1=StringRegExpReplace($str, '\d{4}\/.+.','$1')
msgbox(0,"Date and Time",$t1)
实际输出为:
\\host11 的当前时间是
请教帮忙解答:
1. 正则表达式是否有误?
2. StringRegExpReplace($str, '\d{4}\/.+.','$1')语句中,$1的含义
3. 如何使用正则式得出我要的结果:
2010/9/22 上午 09:45
2010/10/1 上午 09:45 1:3: $str 的值是什么?不列出来怎么解答?
2:$1 相当于\1 正则里面的 定义的组 取第一组 抱歉,刚忘记了这一部分了... 本帖最后由 水木子 于 2010-9-21 11:07 编辑
非常感谢你的使用与支持!
这是你要的效果吗?
Dim $u
$s="\\host11 的当前时间是 2010/9/22 上午 09:45"
$t1=StringRegExp($s, "\d{4}.+",3)
For $i=0 To $t1-1
msgbox(0,"Date and Time",$t1[$i])
Next #include<array.au3>
Local $str = _
"\\host11 的当前时间是 2010/9/22 上午 09:45" & @CRLF & _
"\\host11 的当前时间是 2010/10/1 上午 09:45"
Local $result = StringRegExp($str, 'host11 的当前时间是\s+(.+)\b', 3)
_ArrayDisplay($result, UBound($result))
非常感谢你的使用与支持!
这是你要的效果吗?
水木子 发表于 2010-9-21 11:06 http://www.autoitx.com/images/common/back.gif
+变成*可以 ?怎么不行 本帖最后由 水木子 于 2010-9-21 11:35 编辑
回复 7# liufenglg
“+”重复前面的字符, 1 或更多次数. 等价于 {1,}
“?”可能会或可能不会出现的前一字符. 等价于 {0, 1} 回复 4# 水木子
没错,是我要的效果.. 偷巧的方法
\h2.+
谢谢各位的通力支持,小弟受益良多....想不到还有幸见到"水木子"大侠!让我倍受鼓舞啊.
谢谢. 呵呵!大侠不敢当!
貌似我天天都在吧!生病那几天我基本上都在,嘿嘿! 版主的精神值得大伙儿学习...偶要是有这精神,说不定也是哪路大神了:)
页:
[1]