MatchCollection mc = Regex.Matches("aab2ba2ab3", @"((?'Open'a)|(?'-Open'b))+(?(Open)2|3)");
foreach (Match m in mc)
{
Console.WriteLine("匹配内容:" + m.Value + " 匹配开始索引:" + m.Index + " 匹配长度:" + m.Length);
}匹配到aab2和ab3是不是一定要以open开始,以负open开始是不是就不行的?
解决方案 »
- 部署安装,Framework4.0无法生成Framework3.5
- 在c#中class前面加一个public具体是什么意思
- 简单问题:类的成员相互访问问题??
- 同步获得网络信息??
- VS2005sp1更新失败,错误2775,怎麼回事?
- 问大家
- 如何对Int32? 类型的变量赋值?
- 从指定位置读取文件部分字节报错
- java里面是return (newWorkPlanDto[]) list.ToArray( new WorkPlanDto[] {}) 那么C#里面怎么写这一句啊
- 在DataGridView中如何进行唯一性和非空约束处理
- 关于主从表的getchildrows属性
- 点击提交按钮之后,页面为不可用状态,提交完成之后页面恢复原始状态!
是不是会去堆栈里去判断有没有Open组存在的啊?
(?'-Open'Exp)中的Exp如果先匹配成功,由于堆栈中还没有入栈的内容,所以也就无法出栈,整个表达式在这一位置就无法匹配成功。所以是要从(?'Open'Exp)匹配开始的
是的,但前提是,它能够拿到控制权
是不是会去堆栈里去判断有没有Open组存在的啊?lxcnn的回答:
是的,但前提是,它能够拿到控制权请问一下,拿到控制权是什么意思啊?有点不懂,帮忙再解释一下,谢谢先
ab
匹配顺序是从左向右尝试匹配的,也就是说,如果a匹配失败,b的匹配就无从谈起,也就是拿不到控制权,只有当a匹配成功,才会把控制权交给b,由b尝试进行匹配