繁体   English   中英

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

[英]How to match regex with special characters ",( in C#

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

“神经计算的方法是捕获指导思想,这些指导思想是大脑解决这些问题的根本方法,并将其应用于计算机系统。” (:14)“ 1.2脑的结构”(:16)“大脑处于低水平。它包含大约一亿(10“)基本单位,称为神经元。 这些神经元中的每一个都与大约一万个其他神经元相连。”(:16)

我要匹配的模式如下: "string" ( :digit+ )

其输出将是:

神经计算的方法是捕获指导思想,这些指导思想是大脑解决这些问题的根本方法,并将其应用于计算机系统。
1.2大脑的结构
大脑处于低水平。 它包含大约一亿(10“)基本单元,称为神经元。这些神经元中的每一个都与大约一万(lo4)个其他神经元相连。

我是新来的正则表达式。 我用过

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+[\w\s]+""\s+\(:\d+\)")
                                .Cast<Match>()
                                .Select(x => x.Value)
                                .ToList());

            //  "1.2 THE STRUCTURE OF THE BRAIN" (:15)

    ""\d+\.\d+[\w\s]+"" ===>  "1.2 THE STRUCTURE OF THE BRAIN"
    \s+\(:\d+\)         ===>  (:15)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM