设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2610|回复: 4

[模块/函数] 提取字符串中的内容

[复制链接]
发表于 2019-11-13 10:31:26 | 显示全部楼层 |阅读模式
本帖最后由 yanwei82123300 于 2019-11-13 10:33 编辑

最近单位正在进行oracle的培训,其中一份报告SO_Paint中字段short NOTE中内容想分段提出相应的内容
请老师们看看如何提取表tblSO_Paint中字段short NOTE中内容
Wuqing Paint Color : 后面的内容,到字符串为"Wuqing"结束
Wuqing Paint Item Number : 后面的内容
这个是字段short NOTE全部内容:
Paint : Wuqing Special PaintWuqing Special Paint : VAPS A-3/3 Coats/PC-Interzinc 52 DFT 50-75/IC-Intergard 475HS DFT 100-200/ FC-Interthane 990 DFT 50-75Wuqing Paint Color : RAL3001 RedWuqing Paint Item Number : Wuqing Special Paint - VAPS A-3 - CBB
非常感谢!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2019-11-14 01:52:19 | 显示全部楼层
access是没有正则查询的。即便VBA中的正则,也比其它语言(例如,JavaScript或者Python)中的正则要弱很多。所以对于复杂表达式,通常很难一次性写好。往往都是需要提取出来再做进一步处理。
  1. Sub test()
  2. '引用:Microsoft VBScript Regular Expressions 5.5
  3.     Dim str As String
  4.     Dim matchs As Object, match As Object
  5.     Dim re As New RegExp
  6.     str = "Paint : Wuqing Special PaintWuqing Special Paint : " _
  7.         & "VAPS A-3/3 Coats/PC-Interzinc 52 DFT 50-75/IC-Intergard " _
  8.         & "475HS DFT 100-200/ FC-Interthane 990 DFT 50-75" _
  9.         & "Wuqing Paint Color : RAL3001 Red" _
  10.         & "Wuqing Paint Item Number : Wuqing Special Paint - VAPS A-3 - CBB"
  11.     re.Global = True
  12.     re.Pattern = "Color(.+?)Wuqing"

  13.     Set matchs = re.Execute(str)
  14.     For Each match In matchs
  15.         Debug.Print match
  16.         'Color : RAL3001 RedWuqing
  17.     Next
  18.     re.Pattern = "Number.*"
  19.     Set matchs = re.Execute(str)
  20.     For Each match In matchs
  21.         Debug.Print match
  22.         'Number : Wuqing Special Paint - VAPS A-3 - CBB
  23.     Next
  24. End Sub
复制代码
如上,打印出来的部分,Color那一段,需要把“Color”和“Wuqing”掐头去尾才能获得想要的结果,而Number部分则需要再处理下开头。是否存在一步到位的做法呢?也许存在,不过我懒得去测试了。
 楼主| 发表于 2019-11-14 09:24:05 | 显示全部楼层
老师谢谢您的帮助了感觉在access处理这个数据不如excel方便
发表于 2019-11-14 11:42:56 | 显示全部楼层
yanwei82123300 发表于 2019-11-14 09:24
老师谢谢您的帮助了感觉在access处理这个数据不如excel方便

其实可以用split分割(例如,冒号)后取值的。不过中间没空格的话,还是需要把尾部的Wuqing进行处理下
 楼主| 发表于 2019-11-14 12:26:54 | 显示全部楼层
roych 发表于 2019-11-14 11:42
其实可以用split分割(例如,冒号)后取值的。不过中间没空格的话,还是需要把尾部的Wuqing进行处理下

oracle顾问,不给加标点符号,单位的oracle是总部买的,只能在这个框架下进行数据采集,真是无奈,我的数据导出的excel表,想提取short notes字段的数据,按照上面的要求.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-3-29 19:56 , Processed in 0.109975 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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