C # - Разделение канала с экранированным каналом в данных?

У меня есть файл с разделителями каналов, который я хотел бы разделить (я использую C #). Например:

This|is|a|test

Однако некоторые данные могут содержать в себе канал. Если это так, это будет экранировано обратной косой чертой:

This|is|a|pip\|ed|test (this is a pip|ed test)

Мне интересно, есть ли регулярное выражение или какой-либо другой метод, чтобы разделить это только на "чистые" трубы (то есть трубы, перед которыми нет обратной косой черты). Мой текущий метод состоит в том, чтобы заменить экранированные каналы настраиваемым фрагментом текста, разделить на каналы, а затем заменить собственный текст на канал. Не очень элегантно, и я не могу не думать, что есть способ получше. Спасибо за любую помощь.

11
задан Ivan Chaer 25 March 2017 в 17:20
поделиться