从字符串仅返回数字0-9

我需要一个可以在VBScript和.NET中使用的正则表达式,该正则表达式将仅返回在字符串中找到的数字。

例如,以下任何“字符串”应仅返回

  • 1231231234
  • (123)123-1234
  • 123-123-1234
  • (123)123-1234
  • 123.123.1234
  • 1231231234
  • 1 2 3 1 2 3 1 2 3 4

这将在电子邮件解析器中用于查找客户可能在电子邮件中提供的电话号码并进行数据库搜索。

我可能错过了类似的正则表达式,但是我确实在regexlib.com上进行了搜索。

[编辑]-

在设置musicfreak的答案后添加了RegexBuddy生成的代码

Dim myRegExp, ResultString

Set myRegExp = New RegExp

myRegExp.Global = True

myRegExp.Pattern = "[^\d]"

ResultString = myRegExp.Replace(SubjectString, "")

Dim ResultString As String

Try

Dim RegexObj As New Regex("[^\d]")

ResultString = RegexObj.Replace(SubjectString, "")

Catch ex As ArgumentException

'Syntax error in the regular expression

End Try

string resultString = null;

try {

Regex regexObj = new Regex(@"[^\d]");

resultString = regexObj.Replace(subjectString, "");

} catch (ArgumentException ex) {

// Syntax error in the regular expression

}

回答:

我不知道VBScript是否具有某种“正则表达式替换”功能,但是如果这样做,则可以执行以下伪代码操作:

reg_replace(/\D+/g, '', your_string)

我不知道VBScript,所以我不能给您确切的代码,但这会删除任何非数字的内容。

编辑:确保具有全局标志(在正则表达式末尾的“ g”),否则它将仅与字符串中的第一个非数字匹配。

以上是 从字符串仅返回数字0-9 的全部内容, 来源链接: utcz.com/qa/406696.html

回到顶部