[已解决] 求正则表达式
本帖最后由 hanz_200 于 2012-11-24 10:21 编辑内容:
V:8086 D:2E10 S:304717AA B:0 E:00 F:0 I:00 N:- C:06 U:00 P:00 R:03
提取字母后面的内容后保存到相应的数组,求指导!
字母N后面的内容不需要提取! 回复 1# hanz_200
一句代码都没自己写??伸手党??{:face (394):} 水平有限,原来用分隔符分离,但是感觉效率有点差,正则一看就感觉头疼,所以求助!{:face (239):} 回复 3# hanz_200
你的描述很不清楚,我估计应该是:
提取冒号与空格之间的数字或字母吧?? :([^-\s]+) 回复 1# hanz_200
### 友情提示:本脚本由 Au3.REHelper 于 2012/11/23 22:34 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $Str = 'V:8086 D:2E10 S:304717AA B:0 E:00 F:0 I:00 N:- C:06 U:00 P:00 R:03'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?<=:)[\w]+', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中元素为: ' & $Test)
_ArrayDisplay($Test, UBound($Test))
感谢两位的回答,没啥编程基础,看正则太头疼!! 回复 6# annybaby
6楼,这个[\w]+和[\w]*能说说为什么取的结果不一样吗?一天了都没有找出原因.为什么不能用[\w]*只能用[\w]+ 回复 8# muxingwan
你分别用两个来匹配,然后对比结果就明白了 本帖最后由 muxingwan 于 2012-11-30 13:37 编辑
就是用二种方式做了,发现不一样,又不明白为什么,才上来问的,高手指点一二吧,我个人认为二者应该是一样的结果.+号和*号的区别我知道,但是结果好像不是1以上和0个以上的区别 回复 9# annybaby
就是用二种方式做了,发现不一样,又不明白为什么,才上来问的,高手指点一二吧,我个人认为二者应该是一样的结果.+号和*号的区别我知道,但是结果好像不是1以上和0个以上的区别 回复 11# muxingwan
说对了,结果就是1以上和0以上的区别~~
如果你找到了不是的证据,那么恭喜你,你发现它的BUG了~ 回复 12# annybaby
V:8086 D:2E10 S:304717AA B:0 E:00 F:0 I:00 [\w]*匹配时在N:- 后都匹配不了,
V:8086 D:2E10 S:304717AA B:0 E:00 F:0 I:00 C:06 U:00 P:00 R:03 [\w]+匹配时把N:- 去掉了
有点头大 回复 13# muxingwan
前一个可以匹配的,后一个不可以,这就是它们的区别,请再认真检查~~ 回复 14# annybaby
我用的 EmEditor里的正则工具查的,看来是EmEditor的着色问题
页:
[1]
2