|
本帖最后由 todaynew 于 2013-3-15 17:15 编辑
yanwei82123300 发表于 2013-3-15 15:50 ![]()
todaynew 谢谢帮助您再看看下面的能否做到:
ITEM desc
MVA001-084-27 MODULE,DRIVE ...
可以这样写查询:
SELECT itemdetail.ITEM, itemdetail.desc, IIf(teststr([desc],"(G|GC)\d+"),ReplaceMatch([desc],"(^.*(?:G|GC))(\d+)(.*$)","$2"),"") AS G后的数字, IIf(teststr([desc],"SR\d+"),ReplaceMatch([desc],"(^.*SR)(\d+)(.*$)","$2"),"") AS SR后的数字
FROM itemdetail;
看到ReplaceMatch([desc],"(^.*(?:G|GC))(\d+)(.*$)","$2"),"")这个函数了吗?这个函数中的正则表达式中有这么个子串:(?:G|GC),这表示G或者GC都可以匹配。
如果还有GA,GB需要匹配的话,则可将这个子串改为::(?:G|GA|GB|GC)。
如果G后面可能是26个大写字母中的一个,则这个子串改写为:G(?:[A-Z])?。
如何处理,可以参见《无关紧要》一文。
|
|