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

Regex 从包含大量标点符号的长字符串中提取数字的正则表达式,regex,vb.net,Regex,Vb.net,我试图从一个字符串中分离数字,该字符串包括eg(%2459348?:,或:2434545/%)的%,/,等。在VB.net中,我如何将其分开?您只需要正确的数字吗 那么你可以这样做 Dim theString As String = "/79465*44498%464" Dim ret = Regex.Replace(theString, "[^0-9]", String.Empty) Dim ret = Regex.Split(theString, "[^0-9]") 嗯

我试图从一个字符串中分离数字,该字符串包括eg(
%2459348?:
,或
:2434545/%
)的
%,/,
等。在VB.net中,我如何将其分开?您只需要正确的数字吗

那么你可以这样做

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

编辑:

还是要按所有非数字字符分割? 那就这样了

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

你只想要数字,对吗

那么你可以这样做

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

编辑:

还是要按所有非数字字符分割? 那就这样了

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

您可以循环遍历字符串的每个字符并检查其上的.IsNumber()。

您可以循环遍历字符串的每个字符并检查其上的.IsNumber()。

这应该可以:

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

这应该是:

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

Result=2459348

这里有一个函数,它将从字符串中提取所有数字

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

这里有一个函数,它将从字符串中提取所有数字

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

你想如何处理句号/小数?我对你的问题投了赞成票,因为我问了一个类似的问题,我的问题也被投了反对票。我不知道正则表达式,marc.d的答案非常有用。你想如何处理句号/小数?我对你的问题投了赞成票,因为我问了一个类似的问题,我的也投了反对票。我对正则表达式一无所知,marc.d的答案非常有用。请注意,只有当文本中有一串数字时,这才会匹配。如果有很多数字中间有其他字符,那么marc.d的答案是非常好的(他的样本数据反映了这种情况)。请注意,只有当文本中有一个数字字符串时,这才会匹配。如果有很多数字中间有其他字符,那么marc.d的答案非常好(他的样本数据反映了这种情况)。谢谢你的回答。这对我也有帮助。:-)谢谢你的回答。这对我也有帮助。:-)