2015-09-02 68 views
2

我想解析一個麪包屑並讓它對大多數零件(在其他正則表達式中) - 除了第三個數據字符串之外的所有零件。正則表達式包括大於符號

實施例的麪包屑 半導體 - 集成電路>數據&信號轉換>數字 - 模擬轉換器(DAC)>產品查看

此實例的麪包屑必須包含「產品視圖」並且還3大於跡象。在這些情況下,我需要第二次之後的文本>報名參加尚未排除以下>

在本例中是「數字 - 模擬轉換器(DAC)」

此正則表達式的作品,除了它包括將大於'數字 - 模擬轉換器(DAC)>'

^([^>]*>){3}[^>](.*)(Product View)$ 

請會有人幫助嗎?

+0

改說你的問題,我沒有真正得到你想要的東西 – QuakeCore

+0

你使用的是什麼編程語言?下面是如何捕獲這些文本:['^(?:[^>] * \ s *>){2} \ s *([^>] *)\ s *>'](https:// regex101的.com/R/lO0tY7/2)。結果在組1中。最後的'\ s *>'可以省略最後一個'>'。如果它可以在字符串末尾,請使用替換:['^(?:[^>] * \ s *>){2} \ s *([^>] *)(?:\ s * $ | \ S *>)'](https://regex101.com/r/lO0tY7/3)。 –

+0

我需要使用普通的正則表達式,因爲它是Adobe Omniture分類規則生成器。我看了一些小組,但是我無法讓他們與其他標準一起工作 - 我在這方面是新手。 – user3207116

回答

1

您可以使用

^(?:[^>]*\s*>){2}\s*([^>]*?)\s*(?:$|>) 

demo

這裏,^字符串的開頭,(?:[^>]*\s*>){2}比賽2次出現的比>其他0個或更多字符,後面跟一個可選的空格,然後\s*比賽匹配可選空白,則([^>]*?)匹配並捕獲除>之外的0個或更多字符,直到字符串末尾或下一個>

+0

請注意,該空間未被捕獲到組1中,因爲我使用了與[[>]] *?'的延遲匹配。 –