我需要一个可以在VBScript和.NET中使用的正则表达式,它将只返回在字符串中找到的数字。
例如,以下任何“字符串”应仅返回1231231234
123-1234
这将在电子邮件解析器中使用,以查找客户可能在电子邮件中提供的电话号码,并进行数据库搜索。
我可能错过了一个类似的正则表达式,但我确实在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
}
发布于 2009-05-10 01:04:40
我不知道VBScript是否有某种“正则表达式替换”函数,但如果它有,那么您可以执行如下伪代码:
reg_replace(/\D+/g, '', your_string)
我不知道VBScript,所以我不能给你确切的代码,但这将删除任何不是数字的东西。
编辑:确保全局标志(regexp末尾的"g“),否则它将只匹配字符串中的第一个非数字。
发布于 2009-05-10 01:10:45
在.NET中,您可以仅从字符串中提取数字。如下所示:
string justNumbers = new String(text.Where(Char.IsDigit).ToArray());
发布于 2017-04-12 20:20:08
作为根据similar question's答案改编的主.Net
解决方案的替代方案:
string justNumbers = string.Concat(text.Where(char.IsDigit));
https://stackoverflow.com/questions/844461
复制相似问题