使用Regex Expression提取特定值

use*_*072 7 c# regex

我正在尝试创建一个表达式,从给定的字符串输入中提取大于125的字符串.

var input = "YH300s, H900H, 234, 90.5, +12D, 48E, R180S, 190A, 350A, J380S";
Run Code Online (Sandbox Code Playgroud)

请查看链接以进一步参考我的脚本/数据示例.

DonotFiddle_Regex示例

这是我当前的表达式尝试(*):

Regex.Matches(input,@"(?!.*\..*)[^\s\,]*([2-5][\d]{2,})[^\s\,]*"))
Run Code Online (Sandbox Code Playgroud)

从上面的表达式来看,唯一的输出是350A, J380S.

但是我想从输入字符串中提取以下输出(请参阅上面的链接以获得进一步的参考):

YH300s, H900H, R180S, 190A, 350A, J380S
Run Code Online (Sandbox Code Playgroud)

关于我可能出错的地方的任何进一步指南将非常感谢.如果我的上下文不清楚,请提前道歉,因为我仍然是写正则表达式的新手.

ASh*_*ASh 3

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        // an example of input
        var input = "YH300s, H900H, 234, 90.5, +12D, 48E, R180S, 190A, 350A, J380S";

        var parts = input.Split(new[]{", "}, StringSplitOptions.RemoveEmptyEntries);
        // regex for numbers (including negative and floating-point)
        var regex = new Regex(@"[-]?[\d]?[\.]?[\d]+");

        foreach(var part in parts)
        {
            // there can be many matches, e.g. "A100B1111" => "100" and "1111"            
            foreach(Match m in regex.Matches(part))
            {
                if (double.Parse(m.Value) > 125)
                {
                    Console.WriteLine(part);
                    break;
                }
            }                   
        }           
    }
}
Run Code Online (Sandbox Code Playgroud)

输出

YH300s
H900H
234
R180S
190A
350A
J380S
Run Code Online (Sandbox Code Playgroud)