提取2个级别的算法

时间:2012-03-22 04:12:40

标签: c# silverlight windows-phone-7.1

大家好我有以下字符串

&|L1|L2|L3|& 

我想提取L1并对它做一些if语句。这意味着我必须阅读每个& &| |然后提取L1?

谢谢你的帮助!

字符串有时不固定>.< &|L1|A2|A3|& %3123%

2 个答案:

答案 0 :(得分:3)

如果您知道您的数据总是这样格式化,并且您始终希望包含在第一个和第二个管道字符之间的子字符串,那么一个简单的正则表达式将起作用(这是在C#中,因为这是您用问题标记的):

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

然后,您可以在“匹配”中执行您需要的任何逻辑。正则表达式解释:匹配字符串的开头,然后是任意字符到第一个管道的懒惰匹配,懒惰匹配并捕获任何字符直到下一个管道。

答案 1 :(得分:0)

您可以一次循环查看每个字符或所有字符。请参阅以下代码

            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");
                }
            }