我需要一个可以在VBScript和.NET中使用的正则表达式,该正则表达式将仅返回在字符串中找到的数字。
例如,以下任何“字符串”应仅返回1231231234
- 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生成的代码
VBScript代码
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = "[^\d]"
ResultString = myRegExp.Replace(SubjectString, "")
VB.NET
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
C#
string resultString = null;
try {
Regex regexObj = new Regex(@"[^\d]");
resultString = regexObj.Replace(subjectString, "");
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}