Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3092|回复: 8

[已解决]求正则表达式方法

[复制链接]
发表于 2014-5-12 13:45 | 显示全部楼层 |阅读模式
PE91 PU11    正则表达式 结果得到   91/11  要怎么写  谢谢
最佳答案
2014-5-12 15:13
jianwu1106 发表于 2014-5-12 15:07
版主你这个可以了 我再加个否则  Polyester100  得到  100   、 PE75 C20 PU5 得到 75/20/5 、麻烦你了
  1. Sub demo()
  2.     Dim objRegExp As Object
  3.     Dim str$, str1$
  4.     Dim obj2 As Object
  5.     'str = "PE91 PU11"
  6.     'str = "PE91"
  7.     'str = "PE91 PU11 SX32"
  8.     Set objRegExp = CreateObject("VBScript.regExp")
  9.     With objRegExp
  10.         .Global = True
  11.         .Pattern = "\d{1,}"
  12.         If .test(str) Then
  13.             For Each obj2 In .Execute(str)
  14.                 str1 = str1 & obj2.Value & "/"
  15.             Next
  16.             str1 = Left(str1, Len(str1) - 1)
  17.             MsgBox str1
  18.         End If
  19.     End With
  20.     Set objRegExp = Nothing
  21. End Sub
复制代码
发表于 2014-5-12 13:53 | 显示全部楼层
  1. Sub demo()
  2.     Dim objRegExp As Object
  3.     Dim str$
  4.     Dim obj2 As Object
  5.     str = "PE91 PU11"
  6.     Set objRegExp = CreateObject("VBScript.regExp")
  7.     With objRegExp
  8.         .Global = True
  9.         .Pattern = "\d{1,}"
  10.             If .test(str) Then
  11.                 Set obj2 = .Execute(str)
  12.                 MsgBox obj2(0) & "/" & obj2(1)
  13.             End If
  14.     End With
  15.     Set objRegExp = Nothing
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-12 13:54 | 显示全部楼层
Please test!{:4312:}
  1. Sub test()
  2.     Dim Reg As Object
  3.     Dim m, mat
  4.     Dim sr As String, ss As String
  5.     sr = "PE91 PU11"
  6.     Set Reg = CreateObject("VbScript.RegExp")
  7.     With Reg
  8.         .Global = True
  9.         .Pattern = "\d+"
  10.         Set mat = .Execute(sr)
  11.         For Each m In mat
  12.             ss = ss & "/" & m
  13.         Next m
  14.     End With
  15.     MsgBox Mid(ss, 2)
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-12 14:08 | 显示全部楼层
  1. Sub demo()
  2.     Dim objRegExp As Object
  3.     Dim i As Long, arr
  4.     Dim str$
  5.     Dim obj2 As Object
  6.     str = "PE91 PU11"
  7.     Set objRegExp = CreateObject("VBScript.regExp")
  8.     With objRegExp
  9.         .Global = True
  10.         .Pattern = ".+?(\d+).+?(\d+)"
  11.         If .test(str) Then
  12.               Debug.Print .Replace(str, "$1/$2")
  13.           End If
  14.     End With
  15.     Set objRegExp = Nothing
  16. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-12 14:08 | 显示全部楼层
替换终于试出来了,这样省事些。
回复

使用道具 举报

发表于 2014-5-12 14:08 | 显示全部楼层
QQ截图20140512140721.jpg
回复

使用道具 举报

 楼主| 发表于 2014-5-12 15:07 | 显示全部楼层
hwc2ycy 发表于 2014-5-12 14:08
替换终于试出来了,这样省事些。

版主你这个可以了 我再加个否则  Polyester100  得到  100   、 PE75 C20 PU5 得到 75/20/5 、麻烦你了
回复

使用道具 举报

发表于 2014-5-12 15:13 | 显示全部楼层    本楼为最佳答案   
jianwu1106 发表于 2014-5-12 15:07
版主你这个可以了 我再加个否则  Polyester100  得到  100   、 PE75 C20 PU5 得到 75/20/5 、麻烦你了
  1. Sub demo()
  2.     Dim objRegExp As Object
  3.     Dim str$, str1$
  4.     Dim obj2 As Object
  5.     'str = "PE91 PU11"
  6.     'str = "PE91"
  7.     'str = "PE91 PU11 SX32"
  8.     Set objRegExp = CreateObject("VBScript.regExp")
  9.     With objRegExp
  10.         .Global = True
  11.         .Pattern = "\d{1,}"
  12.         If .test(str) Then
  13.             For Each obj2 In .Execute(str)
  14.                 str1 = str1 & obj2.Value & "/"
  15.             Next
  16.             str1 = Left(str1, Len(str1) - 1)
  17.             MsgBox str1
  18.         End If
  19.     End With
  20.     Set objRegExp = Nothing
  21. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-12 15:25 | 显示全部楼层
  1. Sub ddtest()
  2. Dim reg As Object, st$, st0$
  3.     st0 = "PE91 PU11"
  4. Set reg = CreateObject("vbscript.regexp")
  5.     reg.Pattern = ".*?(\d+).*?(\d+)"
  6.      st = reg.Replace(st0, "$1/$2")
  7.     MsgBox st
  8. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 13:26 , Processed in 0.387058 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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