如何在 C# 中将正则表达式与特殊字符 ",( 匹配



i在读取文件后生成以下字符串。

"神经计算的方法是捕获大脑解决这些问题并将其应用于计算机系统的指导原则。"(:14)" 1.2大脑的结构"(:16)"的大脑在低水平上。它包含大约一千万(10英寸)的基本单元,称为神经元。这些神经元中的每一个都与大约一万(lo4)相连。"(:16)

我想匹配的模式是这样的: "string" ( :digit+ )

其输出将是:

神经计算的方法是捕获大脑解决这些问题并将其应用于计算机系统的指导原则。
1.2大脑的结构
大脑处于低水平。它包含大约一千万(10英寸)的基本单元,称为神经元。这些神经元中的每个神经元中的每个神经元中的每个神经元中的每个神经元中的每个神经元中的每个神经元中的每个神经元中的每个神经元中的每一个。

我是正则表达的新手。我已经使用了

var reg = new Regex("".*?"");

它可以匹配双引号中的内容,但是如何匹配其余模式?

它有助于将其分解为您想要的正则表达式。由于您想捕获不同的组,因此您会用括号包围:

您想匹配:

报价
其次是任何不是报价的东西,一次或多次;将其捕获为一个小组
其次是报价
其次是括号
其次是结肠
其次是数字,一次或多次
然后是括号

string reg = ""([^"]+)" \( :\d+ \)"

如果我理解正确,则需要检测全部(:digit)

string regex = "(()(.){1}(:)[1-9]{1,}(.){1}())"

您可以在这里尝试:http://regexr.com/

  @ allows putting quotes in a string. So you can use this
  in regex search pattern.
  var st = @" ""1.2 THE STRUCTURE OF THE BRAIN"" (:15) )";
            List<string> result = new List<string>
                                (Regex.Matches(st, @" ""d+.d+[ws]+""s+(:d+)")
                                .Cast<Match>()
                                .Select(x => x.Value)
                                .ToList());
            //  "1.2 THE STRUCTURE OF THE BRAIN" (:15)
    ""d+.d+[ws]+"" ===>  "1.2 THE STRUCTURE OF THE BRAIN"
    s+(:d+)         ===>  (:15)

最新更新