有没有比这样做更好的方法来获取一个字符串,比如"(123) 455-2344“并从中获得"1234552344”:
var matches = Regex.Matches(input, @"[0-9]+", RegexOptions.Compiled);
return String.Join(string.Empty, matches.Cast<Match>()
.Select(x => x.Value).ToArray());
也许一个正则表达式模式可以在单个匹配中做到这一点?不过,我似乎不能创建一个来实现这一点。
发布于 2010-04-14 11:45:45
您需要使用Regex吗?
return new String(input.Where(Char.IsDigit).ToArray());
发布于 2010-04-14 11:49:55
你对Replace
有意见吗?
return Regex.Replace(input, @"[^0-9]+", "");
发布于 2010-04-14 11:48:53
您需要用''
(空字符串)替换/\D/
(非数字)
Regex r = new Regex(@"\D");
string s = Regex.Replace("(123) 455-2344", r, "");
或者更简洁地说:
string s = Regex.Replace("(123) 455-2344", @"\D",""); //return only numbers from string
https://stackoverflow.com/questions/2634731
复制相似问题