Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RegEx仅提取第一组数字_Regex_Excel_Vba - Fatal编程技术网

RegEx仅提取第一组数字

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

我试图从表达式“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
        .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)
返回匹配集合中的第一项

的效果非常好。谢谢你的解释!