lindafu 发表于 2011-10-23 09:28:15

求磁盘信息正则表达式【已解决】

本帖最后由 lindafu 于 2011-10-23 12:27 编辑

字符串为USBSTOR\\Disk&Ven_Kingston&Prod_DT_101_G2&Rev_PMAP\\07B20F000EDB0027&0

匹配为下面的结果
Kingston DT 101 G2

afan 发表于 2011-10-23 10:23:15

Local $Str = 'USBSTOR\\Disk&Ven_Kingston&Prod_DT_101_G2&Rev_PMAP\\07B20F000EDB0027&0'
Local $Test = StringRegExpReplace($str, '.*?_([^&_]+)(?:&\w+\\\\.*$)?', '$1 ')
MsgBox(0, '', '原字符串:' & @LF & $Str & @LF & @LF & '替换结果(注,尾部会有个空格):' & @LF & $Test)

lindafu 发表于 2011-10-23 11:31:26

回复 2# afan

非常感谢afan 超版的帮忙

字符串换成 RTSTOR\\DISK&Ven_Generic-&Prod_Multi-Card&Rev_1.00\\6&966d86&0&20060413092100000

得的结果多了 1.00\\6&966d86&0&20060413092100000



再麻烦afan 超版帮忙下了

afan 发表于 2011-10-23 11:45:49

把表达式改为.*?_([^&_]+)(?:&[^\\&]+\\\\.+$)?

lindafu 发表于 2011-10-23 12:08:51

回复 4# afan

超版 我是想把&Rev 后面部分都不要了,但换了个U盘还是有后面部分的
字符串 USBSTOR\Disk&Ven_Kingmax&Prod_FlashDisk&Rev_1.00\08112866b94325&0

afan 发表于 2011-10-23 12:13:14

所以应该早说清楚,尽量把可能的字符串描述得周全些
把表达式改为.*?_([^&_]+)(?:&[^\\&]+\\.+$)?

lindafu 发表于 2011-10-23 12:24:01

回复 6# afan

问题解决了,多谢afan 超版

user3000 发表于 2011-10-23 23:54:22

又多学了点.....
原来'$1'在正则里等同于'\1'?
页: [1]
查看完整版本: 求磁盘信息正则表达式【已解决】