使用正则表达式捕获带有可选逗号的数字

时间:2019-05-31 14:37:32

标签: regex string

我要从某个网站和文本“查看所有{将有一个数字}员工”中进行抓取。

现在,此数字由“,”分隔,如1200。所以归纳的正则表达式将是200或1,200或12,345,098。

尝试

public static void Main(string[] args)
{    
    var records = new List<Foo> { new Foo { Id = 1, Name = "" }, new Foo { Id = 2 } };

    using (var csv = new CsvWriter(Console.Out))
    {        
        var shouldIgnoreName = records.All(foo => string.IsNullOrEmpty(foo.Name));

        var classMap = new DefaultClassMap<Foo>();
        classMap.AutoMap();
        classMap.Map(m => m.Name).Ignore(shouldIgnoreName);

        csv.Configuration.RegisterClassMap(classMap);
        csv.WriteRecords(records);
    }

    Console.ReadKey();
}

public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}        

1 个答案:

答案 0 :(得分:1)

此表达式仅输出我们所需的数字:

([0-9,]+)

(\d+,?)

是一个捕获组,包括任何数字和任何可选的逗号。如有必要,我们可以根据需要将其绑定更多。

DEMO 1

DEMO 2

建议:

The fourth bird

  

我认为重复逗号和数字会更精确,例如   例如\d+(?:\,\d+)*或其他文本优先模式也可以   匹配一个单独的逗号,并且仅将单独的组与第二个匹配。

RegEx电路

jex.im可视化正则表达式:

enter image description here