2017-08-29 95 views
0

我產生閱讀文件後,下面的字符串。如何匹配特殊字符正規表達式「(在C#

」神經計算的方法是捕捉underly大腦的解決這些問題的指導原則和將它們應用到計算機系統中。「(:14)」1.2腦的結構「(:16)」低級大腦,它​​包含大約一億個(10「)基本單元,稱爲神經元,每個神經元(16)

我想匹配什麼樣的模式是這樣的:"string" (:digit+)

它的輸出將是:

神經計算的方法是捕捉underly大腦的解決這些問題的指導原則,並將其應用到計算機系統。
1.2腦的結構
腦處於低水平。它包含了約10000萬元(10" )的基本單元,稱爲神經元。每個神經元連接到一萬左右(LO 4)其他。

我新的正則表達式。我已經使用

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

它可以匹配雙引號內的內容,但我怎麼能匹配pattern的休息嗎?

+0

在每個特殊字符前加一個反斜槓,以便在匹配文本時將其轉義。 – Tiramonium

回答

3

它有助於打破這種分解成你想要的正則表達式的事情。既然你想捕捉不同的羣體是什麼,你會將它們括在括號內:

要匹配上:

報價以後內容
不是報價,一次或多次;抓住這個作爲一個羣體
其次報價
之後括號
其次是結腸
後面跟一個數字,一次或多次
之後括號

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

,如果我理解正確,需要檢測的所有(:數字)

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

你可以在這裏嘗試一下: http://regexr.com/

0
@ 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) 
相關問題