我有一个包含多个字符串值的列,如句子。
在该句中,我想找到包含至少一个-
的10个或更多字符的一个或所有字母数字值,并将结果值放在另一列中。
例如: 包含句子的列如下:
upgrade 15.07.2010, old No: WI82-01062. User moved to No: WI12-01012 02.04.2012 to a 2 user network.
或
Upgrade from lite 7/6/07, old No: PTX7-89C367EC5052-01211
理想情况下,我希望第一个示例的列为WI82-01062, WI12-01012
,第二个示例为PTX7-89C367EC5052-01211
。
可能正在搜索字符串中的-
,并且在两端找到blank space
的第一个匹配项会有所帮助,但我没有任何线索如何在excel术语中写出来。
谢谢
答案 0 :(得分:0)
您可以使用这样的正则表达式(可能有更好的模式!):
Function ExtractData(r As Variant) As String
Static oRE As Object
Dim sTemp As String
Dim n As Long
Dim matches
If oRE Is Nothing Then
Set oRE = CreateObject("vbscript.regexp")
With oRE
.Pattern = "[A-Za-z0-9\-]{10,}"
.Global = True
End With
End If
Set matches = oRE.Execute(r)
If matches.Count > 0 Then
For n = 1 To matches.Count
sTemp = sTemp & ", " & matches(n - 1)
Next n
ExtractData = Mid$(sTemp, 3)
End If
End Function