Regex reg = new Regex("a[^b]*b"); int indexExpression = 0; string str = "aasdabsd-bsafasfasf-fgdfbgds-asqweq-rgdfgdf-sdgvza-safascxz"; foreach (Match match in reg.Matches(str)) { //str = str.Replace(match.Value, "{" + (indexExpression++).ToString() + "}"); Console.WriteLine((indexExpression++).ToString()); Console.WriteLine(match.Value); }a[^b]*b 就是以a开始的到第一个b结束时的匹配 You can just try it
如果你是要分割字符串
直接用String.Split不就可以了么 string s = "aasdasd-safasfasf-fgdfgds-asqweq-rgdfgdf-sdgvza-safascxz ";
string[] strs = s.Split('-');然后直接使用strs就好了
想用哪个用哪个
string[] strs = s.Split('-');
int count=strs.length;
//下面取-后的第一个元素
string temp=strs[1];//结果就是safasfasf
string temp=strs[1].tostring();//结果就是safasfasf
他就匹配成最后一个的了
这个不知道成不。
Regex reg = new Regex("a[^b]*b");
int indexExpression = 0;
string str = "aasdabsd-bsafasfasf-fgdfbgds-asqweq-rgdfgdf-sdgvza-safascxz";
foreach (Match match in reg.Matches(str))
{
//str = str.Replace(match.Value, "{" + (indexExpression++).ToString() + "}");
Console.WriteLine((indexExpression++).ToString());
Console.WriteLine(match.Value); }a[^b]*b
就是以a开始的到第一个b结束时的匹配
You can just try it