2013-05-10 48 views
0

我需要建立一個正則表達式匹配這樣的正則表達式:如何建立嵌套的搜索條件

「焊接工藝評定和XYZ OR(ABC或LMN)」

請幫助我實現這一目標!

+5

對不起。我的水晶球目前在清潔工,所以我需要更多的細節。你正在使用哪種正則表達式引擎?什麼是期望的輸出?你想要實現的匹配規則究竟是什麼? – 2013-05-10 08:00:51

+0

.Net Regex引擎將在這裏使用。輸入將採用這種格式,它應該檢查字符串「Hello PQR,XYZ,但ABC在哪裏」,並讓我知道它是否與提供的搜索表達式匹配。對於上面的搜索字符串根據「PQR AND XYZ OR(ABC或LMN)」提供的表達式,輸出將爲TRUE ... – 2013-05-10 08:03:42

回答

4
  1. 這是一個正則表達式正確匹配嵌套不可能
    對此,您需要一個context-free grammar

  2. 我在您的評論中看到,您提到您將使用.NET。
    .NET中的「正則表達式」庫實際上是比計算機科學中通常所說的「正則表達式」更強大的

    可以使用.NET的正則表達式匹配使用平衡組嵌套的括號定義

    \(
        (?> 
         [^()]+ 
        | 
         (?<DEPTH>\() 
        | 
         (?<-DEPTH>\)) 
    )* 
        (?(DEPTH)(?!)) 
    \) 
    

    對於這個模式的工作,你需要忽略空格。

    請注意,this isn't available in every regular expression library and is not what regular expressions are defined to be in computer science

+0

@TimPietzcker:感謝您的編輯! – Mehrdad 2013-05-10 08:08:56