Vit*_*ata 2 regex excel vba excel-vba
在本主题中,我们的想法是将数据"删除",然后x通过RegEx进行划分.- > 如何使用excel正则表达式从字符串中提取广告尺寸
因此来自:
uni3uios3_300x250_ASDF.html
Run Code Online (Sandbox Code Playgroud)
我想通过RegEx实现:
300x250
Run Code Online (Sandbox Code Playgroud)
我已经成功地完成了相反的工作,我正在努力争取需要做的事情.这就是我现在所拥有的:
Public Function regExSampler(s As String) As String
Dim regEx As Object
Dim inputMatches As Object
Dim regExString As String
Set regEx = CreateObject("VBScript.RegExp")
With regEx
.Pattern = "(([0-9]+)x([0-9]+))"
.IgnoreCase = True
.Global = True
Set inputMatches = .Execute(s)
If regEx.test(s) Then
regExSampler = .Replace(s, vbNullString)
Else
regExSampler = s
End If
End With
End Function
Public Sub TestMe()
Debug.Print regExSampler("uni3uios3_300x250_ASDF.html")
Debug.Print regExSampler("uni3uios3_34300x25_ASDF.html")
Debug.Print regExSampler("uni3uios3_8x4_ASDF.html")
End Sub
Run Code Online (Sandbox Code Playgroud)
如果你跑TestMe,你会得到:
uni3uios3__ASDF.html
uni3uios3__ASDF.html
uni3uios3__ASDF.html
Run Code Online (Sandbox Code Playgroud)
而这正是我想通过RegEx剥离的东西.
将IF块更改为
If regEx.test(s) Then
regExSampler = InputMatches(0)
Else
regExSampler = s
End If
Run Code Online (Sandbox Code Playgroud)
你的结果将会回归
300x250
34300x25
8x4
Run Code Online (Sandbox Code Playgroud)
这是因为InputMatches保存了RegEx执行的结果,它保存了您匹配的模式.