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

c# Regex从数字中提取特定的数字

为什么需要使用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);

,你也可以使用SplitJoin:

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
演示