找回密码
 加入
搜索
查看: 8230|回复: 16

[AU3基础] [已解决]识别出CPU简明型号的正则

 火.. [复制链接]
发表于 2011-9-30 08:40:33 | 显示全部楼层 |阅读模式
本帖最后由 elexy 于 2011-10-2 09:18 编辑

问题更新
Local $cpu0= "Intel(R) Core2(tm)  I7-2630QM    @ 3.00GHz"
$exp = StringRegExp($cpu0,'\w+(?=\s*@)',1)
MsgBox(0,$cpu0,$exp[0])
上述正则只能获取到 2630M  如何改进一下获取  I7-2630QM
发表于 2011-9-30 08:46:12 | 显示全部楼层
\w\d{4}
发表于 2011-9-30 09:10:34 | 显示全部楼层
楼上很快,不过这样只能取到E系列的CPU E3400-E6700.
其他的像G530  G620的就不要了吗?
 楼主| 发表于 2011-9-30 09:16:00 | 显示全部楼层
楼上很快,不过这样只能取到E系列的CPU E3400-E6700.
其他的像G530  G620的就不要了吗?
amxi 发表于 2011-9-30 09:10


是啊,楼上的有什么好的方案,会不会有个规律,就是 "CPU" 到 "@" 这段字符之间的型号?
发表于 2011-9-30 09:42:36 | 显示全部楼层
楼主先把 型号 大概都列出来 或者 总结一下规律 再问 估计很快就解决了~
发表于 2011-9-30 09:45:17 | 显示全部楼层
本帖最后由 zcool321 于 2011-9-30 09:49 编辑

你上面列的两个可以用 \w\d{3,4}或者\w\d+
如果确定在CPU和@之前 可以用CPU\s+(\w\d{3,4})\s+@或者CPU\s+(\w\d+)\s+@会更准确
 楼主| 发表于 2011-9-30 10:31:28 | 显示全部楼层
你上面列的两个可以用 \w\d{3,4}或者\w\d+
如果确定在CPU和@之前 可以用CPU\s+(\w\d{3,4})\s+@或者CPU\s+( ...
zcool321 发表于 2011-9-30 09:45


标题栏是 文本    输出为 结果    您的正则式是错误的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-9-30 11:23:56 | 显示全部楼层
回复 1# elexy


   \w\d+\s*(?=@)
发表于 2011-9-30 11:25:11 | 显示全部楼层
回复 3# amxi


    楼主一开始只说一个字母加四个数字的把
发表于 2011-9-30 11:34:07 | 显示全部楼层
(?i)(?<=CPU\s+).*?(?=\@)
发表于 2011-9-30 14:12:26 | 显示全部楼层
本帖最后由 netegg 于 2011-9-30 14:33 编辑

既然能取到cpu还要正则干什么,lz这个要求很奇怪,如果标记方法不一样怎么办
楼上各位这样做法对分析单一类型字符串无疑是有效的,稍有变化可能就不对了(最靠谱的三笑这个可能比较合适,只针对楼主所说的这种标记类型)
另外楼主这个为什么想着用正则呢?
Local $string= "Pentium(R) Dual-Core CPU   E5700    @ 3.00GHz"
$pos1 = stringinstr($string, 'cpu')
$pos2 = stringinstr($string, chr(64))
msgbox(0,0,stringmid($string, $pos1, $pos2))
这样难道不行吗
 楼主| 发表于 2011-9-30 14:34:12 | 显示全部楼层
既然能取到cpu还要正则干什么,lz这个要求很奇怪,如果标记方法不一样怎么办
楼上各位这样做法对分析单一类型 ...
netegg 发表于 2011-9-30 14:12


谢谢netegg,您这样出来的是 CPU   E5700   @ 3GHZ  

因为我想收集电脑的CPU等硬件配置信息,获取的CPU信息很长,没法生成报表加以进一步分析,所以像这个例子只需要获取到 E5700  即可。
发表于 2011-9-30 14:38:33 | 显示全部楼层
本帖最后由 netegg 于 2011-9-30 14:39 编辑

回复 12# elexy

如果是这样的话,更不用麻烦了,strignsplit找到cpu那个元素的索引,对后面的继续操作就行了,前面的就不管了
还有,如果是收集硬件信息为什么不直接用device api,要这么干?
 楼主| 发表于 2011-9-30 14:44:44 | 显示全部楼层
本帖最后由 elexy 于 2011-9-30 14:47 编辑
回复  elexy

如果是这样的话,更不用麻烦了,strignsplit找到cpu那个元素的索引,对后面的继续操作就行了, ...
netegg 发表于 2011-9-30 14:38


8楼的正则貌似可行,10楼三笑的匹配不出来。device api 有点高深吧,不太会,老兄有相关资料看一下吗?  我这个是用 WMI 收集的 CPU信息,用正则或其他方式提取我需要的 简明的CPU型号格式
发表于 2011-9-30 16:50:42 | 显示全部楼层
本帖最后由 gzh888666 于 2011-9-30 19:25 编辑
intel CPU的信息,每款都不一样,但都有个特征,型号都出现在  CPU  与 @ 之间
就是 取 "CPU" 到 "@"  之间 ...
elexy 发表于 2011-9-30 08:40

看看下面的那个更适合你!推荐最后一个
CPU\h+(.+?)\h+\@
或者
(\w\d+)(?=\h+\@)
或者
(?i)(?<=CPU)\h+([A-Z]\d+)(?=\h+\@)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-2 11:29 , Processed in 0.085726 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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