[已解决]识别出CPU简明型号的正则
本帖最后由 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)上述正则只能获取到 2630M如何改进一下获取I7-2630QM \w\d{4} 楼上很快,不过这样只能取到E系列的CPU E3400-E6700.
其他的像G530G620的就不要了吗? 楼上很快,不过这样只能取到E系列的CPU E3400-E6700.
其他的像G530G620的就不要了吗?
amxi 发表于 2011-9-30 09:10 http://www.autoitx.com/images/common/back.gif
是啊,楼上的有什么好的方案,会不会有个规律,就是 "CPU" 到 "@" 这段字符之间的型号? 楼主先把 型号 大概都列出来 或者 总结一下规律 再问 估计很快就解决了~ 本帖最后由 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+@会更准确 你上面列的两个可以用 \w\d{3,4}或者\w\d+
如果确定在CPU和@之前 可以用CPU\s+(\w\d{3,4})\s+@或者CPU\s+( ...
zcool321 发表于 2011-9-30 09:45 http://www.autoitx.com/images/common/back.gif
标题栏是 文本 输出为 结果 您的正则式是错误的。
回复 1# elexy
\w\d+\s*(?=@) 回复 3# amxi
楼主一开始只说一个字母加四个数字的把 (?i)(?<=CPU\s+).*?(?=\@) 本帖最后由 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))这样难道不行吗 既然能取到cpu还要正则干什么,lz这个要求很奇怪,如果标记方法不一样怎么办
楼上各位这样做法对分析单一类型 ...
netegg 发表于 2011-9-30 14:12 http://www.autoitx.com/images/common/back.gif
谢谢netegg,您这样出来的是 CPU E5700 @ 3GHZ
因为我想收集电脑的CPU等硬件配置信息,获取的CPU信息很长,没法生成报表加以进一步分析,所以像这个例子只需要获取到 E5700即可。 本帖最后由 netegg 于 2011-9-30 14:39 编辑
回复 12# elexy
如果是这样的话,更不用麻烦了,strignsplit找到cpu那个元素的索引,对后面的继续操作就行了,前面的就不管了
还有,如果是收集硬件信息为什么不直接用device api,要这么干? 本帖最后由 elexy 于 2011-9-30 14:47 编辑
回复elexy
如果是这样的话,更不用麻烦了,strignsplit找到cpu那个元素的索引,对后面的继续操作就行了, ...
netegg 发表于 2011-9-30 14:38 http://www.autoitx.com/images/common/back.gif
8楼的正则貌似可行,10楼三笑的匹配不出来。device api 有点高深吧,不太会,老兄有相关资料看一下吗?我这个是用 WMI 收集的 CPU信息,用正则或其他方式提取我需要的 简明的CPU型号格式 本帖最后由 gzh888666 于 2011-9-30 19:25 编辑
intel CPU的信息,每款都不一样,但都有个特征,型号都出现在CPU与 @ 之间
就是 取 "CPU" 到 "@"之间 ...
elexy 发表于 2011-9-30 08:40 http://www.autoitx.com/images/common/back.gif
看看下面的那个更适合你!推荐最后一个CPU\h+(.+?)\h+\@或者(\w\d+)(?=\h+\@)或者(?i)(?<=CPU)\h+(\d+)(?=\h+\@)
页:
[1]
2