嗨我想要一個正則表達式模式來匹配一個非常特定的字符串語法。下面是我放在一起的模式字符串;它工作在某些情況下,而不是在別人,我很肯定這是太過於複雜:正則表達式來匹配特定的語法
\[\CONTENT\((?:(?:(?:(\w+) ?= ?((?:"(?:[^"]+)")|(?:'(?:[^']+)')|(?:(?:[^"',]+))) ?, ?)+(?:(?:\w+) ?= ?(?:(?:"(?:.+)")|(?:'(?:.+)')|(?:(?:[^"',]+)))))|(?:(?:\w+) ?= ?(?:(?:"(?:.+)")|(?:'(?:.+)')|(?:(?:[^"',]+)))))\)]
,我試圖匹配的字符串語法如下:
[CONTENT(Name="value, Name2='value2', Name_3 = value3, Name4= "value 4 \" includes an escaped quote")] etc
的正賽團體我想返回如下
Match Group 1 - Match 1: [CONTENT(Name="value", Name2='value2', Name_3 = value3, Name4= "value 4 \" includes an escaped quote")] Match Group 2 - Match 1: Name="value" Match Group 2 - Match 2: Name Match Group 2 - Match 3: value Match Group 3 - Match 1: Name2='value' Match Group 3 - Match 2: Name2 Match Group 3 - Match 3: value2 Match Group 4- Match 1: Name_3 = value3 Match Group 4- Match 2: Name_3 Match Group 4- Match 3: value3 Match Group 5 - Match 1: Name4= "value 4 \" includes an escaped quote" Match Group 5 - Match 2: Name4 Match Group 5 - Match 3: value 4 \" includes an escaped quote
當我指的是符合我指的是比賽團體組.NET。結果不必如上所述,但如果可能的話,結果相似。
我很好用簡單的正則表達式,但我不能讓我的頭繞着周圍等。「名稱=值」集可以重複許多(可能,但不太可能無限的時間)每個由'分隔, '(逗號) - 除最後一組外(最後一個名字/數值組不會跟着一個','(逗號))。 '='(等於)符號(或不)以及','(逗號)的任一側都可以有空格。
我不知道這是不是太複雜用正則表達式或做什麼(如果我接受任何建議,任何人都可以給關於如何分析這樣的字符串替代。)
感謝任何人都可以提供的幫助。
Chris
您的示例數據中的第一個attrib/value對讀取:'Name =「value,'(該值缺少結尾引用),最後一個屬性/值對具有適當引用的值,其中包含轉義引用。是第一個缺少近似引用錯字? – ridgerunner 2011-03-22 17:13:25
,這是很多不必要的非捕獲組。 – 2011-03-22 19:47:40