首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串中获取所有数字的最佳方法

从字符串中获取所有数字的最佳方法
EN

Stack Overflow用户
提问于 2010-04-14 11:36:45
回答 5查看 36.1K关注 0票数 28

有没有比这样做更好的方法来获取一个字符串,比如"(123) 455-2344“并从中获得"1234552344”:

代码语言:javascript
复制
var matches = Regex.Matches(input, @"[0-9]+", RegexOptions.Compiled);

return String.Join(string.Empty, matches.Cast<Match>()
                                .Select(x => x.Value).ToArray());

也许一个正则表达式模式可以在单个匹配中做到这一点?不过,我似乎不能创建一个来实现这一点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-14 11:45:45

您需要使用Regex吗?

代码语言:javascript
复制
return new String(input.Where(Char.IsDigit).ToArray());
票数 85
EN

Stack Overflow用户

发布于 2010-04-14 11:49:55

你对Replace有意见吗?

代码语言:javascript
复制
return Regex.Replace(input, @"[^0-9]+", "");
票数 22
EN

Stack Overflow用户

发布于 2010-04-14 11:48:53

您需要用'' (空字符串)替换/\D/ (非数字)

代码语言:javascript
复制
Regex r = new Regex(@"\D");
string s = Regex.Replace("(123) 455-2344", r, "");

或者更简洁地说:

代码语言:javascript
复制
string s = Regex.Replace("(123) 455-2344", @"\D",""); //return only numbers from string
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2634731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档