c# Regex从数字中提取特定的数字
本文关键字:数字 提取 Regex | 更新日期: 2023-09-27 18:02:03
我试图从10:131186;
中提取数字,并在没有:
和;
的情况下获得10131186
。
我需要创建的Regex模式是什么?
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
使用上面的代码,我得到:131186;
而不是10121186
。
为什么需要使用Regex。它比使用string.Replace
方法
string input = "10:131186;";
input = input.Replace(":", "");
input = input.Replace(";", "");
Console.WriteLine(input);
您可以尝试使用Regex.Replace
:
var input = "10:131186;";
string pattern = @"('d+):('d+);";
string res = Regex.Replace(input, pattern, "$1$2");
Console.WriteLine(res);
,你也可以使用Split
和Join
:
var input = "10:131186;";
Console.WriteLine(string.Join("", input.Split (new char[] { ':', ';' }, StringSplitOptions.RemoveEmptyEntries)));
Please try this.
string input = "10:131186;";
input = input.Replace(":", String.Empty).Replace(";", string.Empty);
直接打印组索引1
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value[1]);
或使用断言。
var input = "10:131186;";
string pattern = "(?<=:).*?(?=;)";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
您可以使用模式''d+
来匹配字符串中的数字并将它们连接到单个字符串中。
using System;
using System.Text;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = "10:131186;";
MatchCollection mCol = Regex.Matches(input, "''d+");
StringBuilder sb = new StringBuilder();
foreach (Match m in mCol)
{
sb.Append(m.Value);
}
Console.WriteLine(sb);
}
}
结果:
10131186
演示