Ich benötige einen regulären Ausdruck, den ich in VBScript und .NET verwenden kann und der nur die Zahlen zurückgibt, die in einer Zeichenfolge gefunden werden.
Zum Beispiel sollte eine der folgenden "Zeichenfolgen" nur 1231231234 zurückgeben
- 123 123 1234
- (123) 123-1234
- 123-123-1234
- (123) 123-1234
- 123.123.1234
- 123 123 1234
- 1 2 3 1 2 3 1 2 3 4
Dies wird in einem E-Mail-Parser verwendet, um Telefonnummern zu finden, die Kunden in der E-Mail angeben können, und um eine Datenbanksuche durchzuführen.
Ich habe möglicherweise einen ähnlichen regulären Ausdruck verpasst, aber ich habe auf regexlib.com gesucht.
[EDIT] - Code hinzugefügt, der von RegexBuddy nach dem Einrichten der Antwort von musicfreak generiert wurde
VBScript-Code
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
}