3

我有一个类似的字符串
Bl. 01 - 03

我希望这减少到只有
01-03

应删除除数字和连字符以外的所有内容。任何想法如何使用或任何其他方法来做到这一点?

4

3 回答 3

3

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

reg.Pattern = "[^\d-]+"
Debug.Print reg.Replace(yourstring, "")
于 2013-04-30T17:30:58.397 回答
0

除非对“BI. 01 - 03”之类的确切含义进行更完整的描述,否则:

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

将捕获您似乎感兴趣的部分作为第 1 组。如果您也想摆脱空格,那么类似:

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

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

于 2013-04-30T17:30:53.523 回答
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
于 2013-04-30T17:43:51.133 回答