用于获取用作分隔符的下划线后面的文本的正则表达式

本文关键字:文本 正则表达式 下划线 用于 分隔符 获取 | 更新日期: 2023-09-27 18:18:27

我有一个这样的字符串:

    所以基本上我需要一个正则表达式来获得_分隔符之后的那4个数值。我确信它非常简单,但Regex对我来说就像一门外语!

    用于获取用作分隔符的下划线后面的文本的正则表达式

    就是这个正则表达式:

    _([0-9]+)
    

    (捕获组1持有的号码)


    或者如果你的引擎支持向后看(据我所知c#不是这种情况):

    (?<=_)[0-9]+
    

    (捕获组0持有的号码)


    (...)表示catch组。在你的匹配对象中,你可以通过yourMatch.Groups[index].Value的索引访问它们,或者如果你通过(?<name>...)命名你的catch组,比如yourMatch.Groups[name].Value。然后,该值将保存与该特定组的子表达式匹配的任何内容(在您的示例中是4位数)。


    如果你只希望正则表达式匹配恰好是4个数字字符,
    然后将+替换为{4}'b

    编辑:正如Alan Moore正确指出的那样,这些被称为"捕获组",而不是"捕获组"。我需要更多的睡眠

    Regex: _(?<number>[0-9]+)

    var match = new Regex("_(?<number>[0-9]+)").Match("blah blah blah_0123");
    if(match.Success)
    {
        var value = match.Groups["number"].Value;
        var number = Int.Parse(value);
        Console.WriteLine(value);  // this will write "0123"
        Console.WriteLine(number); // this will write "123"
    }