[英]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.