如何在不遵循特定字符(?)时使用正则表达式匹配字符(')?

时间:2012-10-19 08:52:18

标签: c# regex edi edifact

如果字符串前面没有问号,我怎么能写一个正则表达式模式来分割字符串呢?

我编写了一个解析器,将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。

有人可以帮助使用符合'的正则表达式。而不是?'?

由于

2 个答案:

答案 0 :(得分:5)

使用negative lookbehind

(?<!\?)'

答案 1 :(得分:0)

只需使用 \&#39; ,而不是尝试 regex.Matches ,而是 regex.Split