算法提取2个水平下降
嗨,大家好,我有以下字符串算法提取2个水平下降
&|L1|L2|L3|&
我想提取L1出来,if语句把它做一些。这意味着我将不得不读取每个& &
和| |
然后提取L1?
谢谢你的帮助!
字符串不固定>.<
有时其 &|L1|A2|A3|& %3123%
您可以通过一次循环每个字符或所有字符来检查。请参见下面的代码
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");
}
}
但我的实际字符串总是变化,L1 L2 L3的数量总是变化> TransformBinary 2012-03-22 04:50:03
如果它改变了多少次,上面的代码将只从实际字符串中挑出L1字符串。尝试一次。 – 2012-03-22 04:56:11
谁是血腥的,为了一个单一的理由而失败。它有什么不对? – 2012-03-22 09:30:08
如果你知道你的数据始终格式化这样,你总是希望包含在第一和第二管道字符之间的子字符串,一个简单的正则表达式将工作(这是在C#中,因为这是你用什么标记了问题):
string testString = "&|L1|L2|L3|&";
string match = Regex.Match(testString, @"^.+?\|(.+?)\|").Groups[1].Value;
然后,您可以在“匹配”上执行所需的任何逻辑。正则表达式解释:匹配字符串的开始,然后匹配任何字符到第一个管道的延迟匹配,延迟匹配并捕获到下一个管道的任何字符。
你总是只需要L1?或者你想要一个所有的列表? – 2012-03-22 04:29:39
问题不清楚。你想要没有L1,L2,L3等结果字符串吗?或者你想要只有L1,L2,L3等字符串?水平总会出现在管道中(像这样的| L1 |)? – Dhananjay 2012-03-22 05:05:27