Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将正则表达式与特殊字符“匹配”;,(C)#_C#_Regex - Fatal编程技术网

C# 如何将正则表达式与特殊字符“匹配”;,(C)#

C# 如何将正则表达式与特殊字符“匹配”;,(C)#,c#,regex,C#,Regex,我在读取文件后生成了以下字符串 “神经计算的方法是获取大脑解决这些问题的指导原则,并将其应用于计算机系统。”(:14)“1.2大脑的结构”(:16)“大脑处于较低水平。它包含大约一万(10)”的信息基本单位,称为神经元。这些神经元中的每一个都与大约一万(lo4)个其他神经元相连。”(:16) 我要匹配的模式如下:“string”(:digit+) 其产出将是: 神经计算的方法是获取大脑解决这些问题的指导原则,并将其应用于计算机系统。 1.2大脑结构 大脑处于低水平。它包含大约一万(10”)个基本

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

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

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

其产出将是:

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

我不熟悉正则表达式。我用过

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

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

它有助于将其分解为您希望正则表达式执行的操作。因为您希望捕获不同的组,所以可以将它们括在括号中:

您想在以下方面进行匹配:

引用
后跟任何非引用的内容,一次或多次;将其作为一个组捕获
后跟一个引号
后跟括号
后跟冒号
后跟一个数字,一次或多次
后跟括号

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

这有助于将其分解为您希望正则表达式执行的操作。因为您希望捕获不同的组,所以可以将它们括在括号中:

您想在以下方面进行匹配:

引用
后跟任何非引用的内容,一次或多次;将其作为一个组捕获
后跟一个引号
后跟括号
后跟冒号
后跟一个数字,一次或多次
后跟括号

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

如果我理解正确,您需要检测所有(:位)

您可以在这里尝试:
如果我理解正确,您需要检测所有(:位)

您可以在这里尝试:
@允许在字符串中加引号。因此您可以使用
在正则表达式搜索模式中。
var st=@“1.2大脑的结构”(:15));
列表结果=新列表
(Regex.Matches(st,@“”“\d+\。\d+[\w\s]+”“\s+\(:\d+\))
.Cast()
.选择(x=>x.Value)
.ToList());
//“1.2大脑的结构”(:15)
“\d+\.\d+[\w\s]+”=>“1.2大脑结构”
\s+\(:\d+\)===>(:15)
@允许在字符串中加引号。所以你可以用这个
在正则表达式搜索模式中。
var st=@“1.2大脑的结构”(:15));
列表结果=新列表
(Regex.Matches(st,@“”“\d+\。\d+[\w\s]+”“\s+\(:\d+\))
.Cast()
.选择(x=>x.Value)
.ToList());
//“1.2大脑的结构”(:15)
“\d+\.\d+[\w\s]+”=>“1.2大脑结构”
\s+\(:\d+\)===>(:15)

在匹配文本时,将反斜杠放在每个特殊字符之前以转义。在匹配文本时,将反斜杠放在每个特殊字符之前以转义。
  @ 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)