跪求高手写一个正则表达式 string beMatchedText = "a,b,c(a,b(tt,xx)),d(aa,cc)";取得结果abc(a,b(tt,xx))d(aa,cc)用正则表达式取得上述结果求正则表达式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string beMatchedText = "a,b,c(a,b(tt,xx)),d(aa,cc)";string[] result=Regex.Split(beMatchedText ,@"(?<!\(\w+),"); string str = "a,b,c(a,b(tt,xx)),d(aa,cc)"; Regex reg = new Regex(@"(?is)([a-z]\(((?<Open>\()|(?<-Open>\))|[^()])*(?(Open)(?!))\))|[a-z]"); reg.Matches(str).OfType<Match>().ToList().ForEach(x => { Console.WriteLine(x.Value); }); Console.Read(); string beMatchedText = "a,b,c(a,b(tt,xx)),d(aa,cc)"; string[] temp_arr=Regex.Matches(beMatchedText, @"[a-z]+?(\(((?<O>\()|(?<-O>\))|.)*?(?(O)(?!))\))?(?=,|$)").Cast<Match>().Select(a=>a.Value).ToArray(); /* [0] "a" string [1] "b" string [2] "c(a,b(tt,xx))" string [3] "d(aa,cc)" string */ 这个正则不匹配的不全啊,像下面的产生的应该是a,b,c(a,b(tt,xx)),d(aa,cc),xx(tt,aa,tt(ss,tt,aa(aaa,tt(ttt))))abc(a,b(tt,xx))d(aa,cc)xx(tt,aa,tt(ss,tt,aa(aaa,tt(ttt)))) 那就更改一下:(?<!\([\w,]+), 今天突然发现这个正则表达式,不能匹配xx(tt,aa,tt(ss,tt,aa(aaa,tt(ttt))),测试) 它会把“测试)”这里截断,分成两个字符串,其实我的这个字符串后面是不确有多少个逗号分隔开来的,其实相当于 A(A1,B1,.....),且里面的A1和B1都可能后面还带括号(A11,.......)(B11,.....),和迭代一样.请问怎么改,谢谢。 不是他们的问题是你自己老改变条件的问题(加那些迭代,加汉子字符等)。 你就相当于总是变更需求的客户,嗯嗯 要缴纳变更项目费用的(?<![\((][^\(\S,]+) 正则看了一点 好久没看了 试试把,可能语法有问题 目的是把\w换成不是(的非空字符。 c#有没有类似vc的那种向导呀,即创建基于多文档,单文档,对话框的工程向导? 在c#中怎么开发Dashboard ? C#关于星相问题? CSV文件出力相关问题(数据量较大场合) 在线等待,关于读取Excel表中数据的问题!!! 急急急!! 简单问题:在C#中如何复制对象? 如何动态定义变量 查询mysql数据库时遇到的一个奇怪的问题 大家来帮帮忙!我在32位的系统下写了个程序64位下运行不了该如何办呢? DataGrid问题 C#中怎么设置默认编码为UTF-8? SharpDevelop的代码提示快捷键是什么?
string[] result=Regex.Split(beMatchedText ,@"(?<!\(\w+),");
string str = "a,b,c(a,b(tt,xx)),d(aa,cc)";
Regex reg = new Regex(@"(?is)([a-z]\(((?<Open>\()|(?<-Open>\))|[^()])*(?(Open)(?!))\))|[a-z]");
reg.Matches(str).OfType<Match>().ToList().ForEach(x =>
{
Console.WriteLine(x.Value);
});
Console.Read();
string beMatchedText = "a,b,c(a,b(tt,xx)),d(aa,cc)";
string[] temp_arr=Regex.Matches(beMatchedText, @"[a-z]+?(\(((?<O>\()|(?<-O>\))|.)*?(?(O)(?!))\))?(?=,|$)").Cast<Match>().Select(a=>a.Value).ToArray();
/*
[0] "a" string
[1] "b" string
[2] "c(a,b(tt,xx))" string
[3] "d(aa,cc)" string */
a,b,c(a,b(tt,xx)),d(aa,cc),xx(tt,aa,tt(ss,tt,aa(aaa,tt(ttt))))a
b
c(a,b(tt,xx))
d(aa,cc)
xx(tt,aa,tt(ss,tt,aa(aaa,tt(ttt))))
其实我的这个字符串后面是不确有多少个逗号分隔开来的,其实相当于 A(A1,B1,.....),且里面的A1和B1都可能后面还带括号(A11,.......)(B11,.....),和迭代一样.请问怎么改,谢谢。