VBA RegEx获取只有Number和Hyphen的String

时间:2013-04-30 17:23:20

标签: regex excel vba

我有一个像
一样的字符串 Bl. 01 - 03

我希望将其简化为只 01-03

除数字和&之外的所有内容应删除连字符。任何想法如何使用或任何其他方法?

3 个答案:

答案 0 :(得分:3)

您可以在替换表达式中使用此模式:

reg.Pattern = "[^\d-]+"
Debug.Print reg.Replace(yourstring, "")

答案 1 :(得分:0)

除非对“BI。01 - 03”之类的内容有更完整的描述,否则:

^.*(\d{2}\s?-\s?\d{2}).*$

将捕获你似乎感兴趣的部分作为第1组。如果你想要摆脱这些空间,那么就像:

^.*(\d{2})\s?-\s?(\d{2}).*$

可能更适合,在第1组和第2组中有两个数字,并且可以替换输出中的连字符。

答案 2 :(得分:0)

这是一个带有非RegEx方法的函数,用于删除除给定输入字符串中的数字和连字符之外的任何内容:

Function removeBadChars(sInput As String) As String
    Dim i As Integer
    Dim sResult As String
    Dim sChr As String

    For i = 1 To Len(sInput)
        sChr = Mid(sInput, i, 1)
        If IsNumeric(sChr) Or sChr = "-" Then
            sResult = sResult & sChr
        End If
    Next

    removeBadChars = sResult
End Function