RegEx仅提取第一组数字

时间:2013-11-19 09:05:19

标签: regex excel vba

我正在尝试从此表达式中提取第一组数字“CSTAR ADJ REF#A-3080101078AZ Keying错误存款$ 058,710.33 05/20/2011项目键控”。也就是说,我想在相邻的单元格中仅得到“3080101078”。

我尝试过使用它:

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)?

1 个答案:

答案 0 :(得分:0)

试试这个

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)对输入执行正则表达式,返回MatchCollection

.Execute(strIn)(0)返回匹配集合中的第一项