c#中的RegEx,不带条件地获取值

本文关键字:条件 获取 中的 RegEx | 更新日期: 2023-09-27 18:14:29

我在RegEx上真的很糟糕,在下面的代码中,我只想要SH:, or end of line.之间的实际数字,我怎么才能实现这一点?

    [TestMethod]
    public void Sandbox()
    {
        var regEx = new Regex(@"SH':(.*?)(',|'z)");
        var matches = regEx.Matches("Some Text|SH:0000000000,SH:1111111111");
        foreach (var match in matches)
        {
            Console.Out.WriteLine(match);
             /* Getting this
             SH:0000000000,
             SH:1111111111
             */
             /* Wanting this
             0000000000
             1111111111
             */
        }
    }

c#中的RegEx,不带条件地获取值

把for循环改成如下

foreach (Match match in matches)
{
    Console.Out.WriteLine(match.Groups[1].Value);
}

也可以这样做:

     var regEx = new Regex(@"SH':(?<abc>.*?)(',|'z)");
     Console.Out.WriteLine(match.Groups["abc"].Value);

var regEx = new Regex(@"(?!SH:)'d+(?=',|'z)?");

只匹配数字