Если вы знаете, что ваши данные всегда отформатированы таким образом, и вы всегда хотите, чтобы подстрока содержалась между первым и вторым символами канала, сработает простое регулярное выражение (это в C #, так как вы пометили вопрос с помощью ):
string testString = "&|L1|L2|L3|&";
string match = Regex.Match(testString, @"^.+?\|(.+?)\|").Groups[1].Value;
Затем вы можете выполнить любую логику, в которой вы нуждаетесь, в «совпадении». Объяснение регулярного выражения: сопоставить начало строки с последующим ленивым совпадением любых символов до первой трубы, ленивое совпадение и захватить любые символы до следующей трубы.