RegEx仅提取第一组数字
我试图从表达式“CSTAR ADJ REF#A-3080101078AZ键控错误存款$938710.33(2011年5月20日项目键控)”中提取第一组数字。也就是说,我只想得到相邻单元格中的“3080101078” 我试过使用这个:RegEx仅提取第一组数字,regex,excel,vba,Regex,Excel,Vba,我试图从表达式“CSTAR ADJ REF#A-3080101078AZ键控错误存款$938710.33(2011年5月20日项目键控)”中提取第一组数字。也就是说,我只想得到相邻单元格中的“3080101078” 我试过使用这个: Function CleanString(strIn As String) As String Dim objRegex Set objRegex = CreateObject("vbscript.regexp") With objRegex
Function CleanString(strIn As String) As String
Dim objRegex
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.Pattern = "[^0-9\s]"
CleanString= Trim(.Replace(strIn, vbNullString))
End With
End Function
这是“3080101078 93871033 05202011”。如何获得第一组号码(3080101078) 试试这个
Function CleanString(strIn As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.Pattern = "\d+"
CleanString = .Execute(strIn)(0)
End With
End Function
\d+
=任意数字,一个或多个
.Execute(strIn)
对输入执行正则表达式,返回匹配集合
.Execute(strIn)(0)
返回匹配集合中的第一项的效果非常好。谢谢你的解释!