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