Алгоритм извлечения 2 уровня вниз - PullRequest
2 голосов
/ 22 марта 2012

Привет, ребята, у меня есть следующая строка

&|L1|L2|L3|& 

Я бы хотел извлечь L1 и сделать несколько операторов if для него.То есть я должен прочитать для каждого & & и | |, а затем извлечь L1?

Спасибо за вашу помощь!

Строка не фиксирована >.< иногда ее &|L1|A2|A3|& %3123%

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Если вы знаете, что ваши данные всегда отформатированы таким образом, и вы всегда хотите, чтобы подстрока содержалась между первым и вторым символами канала, сработает простое регулярное выражение (это в C #, так как вы пометили вопрос с помощью ):

string testString = "&|L1|L2|L3|&";
string match = Regex.Match(testString, @"^.+?\|(.+?)\|").Groups[1].Value;

Затем вы можете выполнить любую логику, в которой вы нуждаетесь, в «совпадении». Объяснение регулярного выражения: сопоставить начало строки с последующим ленивым совпадением любых символов до первой трубы, ленивое совпадение и захватить любые символы до следующей трубы.

0 голосов
/ 22 марта 2012

Вы можете проверить, зацикливая каждый символ или все символы одновременноСмотрите ниже код

            string Str = "&|L1|L2|L3|&";
            for(int i= 0;i<Str.Length;i++)
            {
                if (Str[i] == 'L' && Str[i+1] == '1')
                {
                    MessageBox.Show(Str[i].ToString() + Str[i+1].ToString() + " Found");
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...