2012-10-19 24 views
3

如何編寫一個正則表達式模式來按特定的分隔符分割一個字符串,只要它沒有以問號開頭?如何在不遵循特定字符(?)時使用正則表達式匹配字符(')?

我寫了一個解析器,將EDIFACT消息拆分爲段,組合和元素。但在EDI標準中,問號是一個轉義字符。 所以拆分此字符串:

'PRI+2.005:1+9022.5'RAD+RRHANB97+120814' 

我可以使用string.Split( '\' '),然後string.split(' + '),然後string.split(':'),以獲得PRI ,2.005,如圖1所示,9022.5等等 然而,這些字符可以用問號轉義:

'PRI+2.005?+3.2:1+9022.5'RAD?'R+RRHANB97+120814' 

現在應該是PRI,2.005 + 3.2,1,9022.5,RAD'R,RRHANB97。

有人可以幫助一個正則表達式匹配'而不是?'嗎?

感謝

+0

你可以使用負面lookbehind:'(?<!\?)' –

回答

0

只要使用\」和,而不是試圖做一個regex.Matches,做一個regex.Split代替