一条正则比较难,我写了下面这个函数
static string GetRegex(string prefix)
{
if (string.IsNullOrEmpty(prefix))
{
return @"[ ]([^\.,]+?)[,]";
}
else
{
return "[ ,]" + prefix.Replace(".", @"\.") + @"\.([^\.]+?),";
}
}
匹配前需要对你的原始字串做个变换
string text = " " + "a1,a1.a2,a1.a3,a1.a2.a3,b1,b1.a1.a2,c1".Replace(",", ", ") + ",";
Regex reg = new Regex(GetRegex("a1"));
匹配结果是 a2 和 a3
其他几种输入我也都试了,可以得到你要的输出
一个正则会行?我看得用上程序逻辑.
楼上正解