正则表达式从包含大量标点符号的长字符串中提取数字

时间:2009-08-27 15:44:38

标签: regex vb.net

我正在尝试将数字与包含%,/,等字符串的数字分开,例如(%2459348?::2434545/%)。如何在VB.net中分离它

4 个答案:

答案 0 :(得分:6)

你只想要数字吗?

然后你就可以这样做

    Dim theString As String = "/79465*44498%464"
    Dim ret = Regex.Replace(theString, "[^0-9]", String.Empty)

HTH

编辑:

或者你想要被所有非数字字符拆分? 那就像这样

Dim ret = Regex.Split(theString, "[^0-9]")

答案 1 :(得分:0)

你可以遍历字符串的每个字符并检查它上面的.IsNumber()。

答案 2 :(得分:0)

这应该做:

Dim test As String = "%2459348?:"
Dim match As Match = Regex.Match(test, "\d+")

If match.Success Then
  Dim result As String = match.Value
  ' Do something with result
End If

结果= 2459348

答案 3 :(得分:0)

这是一个从字符串中提取所有数字的函数。

Public Function GetNumbers(ByVal str as String) As String
  Dim builder As New StringBuilder()
  For Each c in str
    If Char.IsNumber(c) Then
      builder.Append(c)
    End If
  Next
  return builder.ToString()
End Function