c# - 用于替换除数字之外的所有字符的正则表达式

标签 c# .net regex

如果我有一串数据,里面有数字。这种模式是不一致的。我想从字符串中提取所有数字,并且只提取一个定义为允许的字符。我认为 RegEx 可能是执行此操作的最简单方法。你能提供一个可以做到这一点的正则表达式模式吗,因为我认为正则表达式是巫术,只有正则表达式医学人才知道它是如何工作的

例如/

"Q1W2EE3R45T" = "12345"
"WWED456J" = "456"
"ABC123" = "123"
"N123" = "N123" //N is an allowed character

更新:这是我的代码:

var data = Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
data = data.Select(x => Regex.Replace(x, "??????", String.Empty)).ToArray();

最佳答案

String numbersOnly = Regex.Replace(str, @"[^\d]", String.Empty);

使用 Regex.Replace(string,string,string)静态方法。

Sample

要允许 N,您可以将模式更改为 [^\dN]。如果您也在寻找 n,您可以申请 RegexOptions.IgnoreCase或者将类更改为 [^\dnN]

关于c# - 用于替换除数字之外的所有字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774323/

相关文章:

c# - Entity Framework 可选关系导致 "conflicting multiplicities"

c# - 使用自定义管道将平面文件拆分为较小的文件(按行数)

regex - 在Scala中删除标点符号形式的文本-Spark

c# - 使用特定的重载而不进行强制转换?

c# - 如何在遇到第二个空格之前从字符串中提取子字符串?

javascript - 正则表达式中的 $0 和 $1

java - 当文本匹配时识别匹配的(子)正则表达式

C# - 带有 OR 子句的 LINQ 语句

c# - 后台文件传输问题

c# - 我可以在同一个项目中引用一个 dll 的两个版本而不将它们放入 GAC 中吗?