Skip to main content
 首页 » 编程设计

c#之正则表达式替换和划分

2024年02月05日26lidabo

我只需要从字符串中提取数字,到目前为止我没有遇到任何问题。

我使用了这段代码:

string test = "N.11 Test 11"; 
string example = Regex.Replace(test, @"[^\d]", ""); 

输出:“1111”。

那么..我怎样才能用一个符号来分隔这两个值呢?

示例:“11:11”。

(抱歉英语不好)

请您参考如下方法:

不使用 replace 的简单方法是这样的。

string test = "N.11 Test 11"; 
var result = string.Join(":", Regex.Matches(test, @"\d+").OfType<Match>()); 

请注意,最好使用 Regex 变量而不是使用像 Regex.Matches 这样的静态方法。如果您想一遍又一遍地使用相同的模式,那么每次都创建新的正则表达式并不优雅。所以这样更好。

public static Regex digits = new Regex(@"\d+"); 
//... 
var result = string.Join(":", digits.Matches(test).OfType<Match>());