2
我有一个简单的字符串中:比赛比赛
data1:abc,123,xyz,data2:hello,goodbye
我需要的正则表达式返回匹配集合:
abc
123
xyz
在过去,我会用正则表达式做到这一点:
data1:(.*)data2:
然后在逗号分隔输出。
有没有办法做到这一点作为一个正则表达式,没有外部代码?
我有一个简单的字符串中:比赛比赛
data1:abc,123,xyz,data2:hello,goodbye
我需要的正则表达式返回匹配集合:
abc
123
xyz
在过去,我会用正则表达式做到这一点:
data1:(.*)data2:
然后在逗号分隔输出。
有没有办法做到这一点作为一个正则表达式,没有外部代码?
试试这个
String text = "data1:abc,123,xyz,data2:hello,goodbye";
Regex reg = new Regex(@"(?<=data1:.*)[^,]+(?=.*data2)");
MatchCollection result = reg.Matches(text);
foreach (var item in result) {
Console.WriteLine(item.ToString());
}
输出:
ABC
XYZ
不知道,但你可以做soemthing像
String s="data1:abc,123,xyz,data2:hello,goodbye "
sttring[] slst= s.split(":");
for (int i = 0;i<slst.lemgth;i++)
{
string[] inr = slst[i].split(",");
for (int j = 0;j<inr.lemgth;j++)
{
if((inr.IndexOf("data") != -1)
continue;
//your code
}
}
感谢您的输入,但我需要做这个没有任何代码,只是正则表达式。 – 2012-03-14 15:22:16
为什么只需要*正则表达式解决方案? – 2012-03-14 15:38:25
因为这实际上是我传入应用程序的配置值,我不想向解决方案添加更多代码。通过一个完全形成的正则表达式,为我做了这项工作,节省了我重新编码的核心方法。 – 2012-03-15 00:38:41