我有一个简单的字符串:
data1:abc,123,xyz,data2:hello,goodbye
我需要正则表达式返回匹配集合:
abc
123
xyz
过去我会用正则表达式来做:
data1:(.*)data2:
然后将其输出分成逗号。
有没有办法将此作为一个正则表达式而没有外部代码?
答案 0 :(得分:2)
试试这个
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
123个
XYZ
答案 1 :(得分:1)
不确定,但您可以执行类似
的操作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
}
}