string str = "aaa[12] bbbc[zxt] ccvcvcvxcvx[@5]xxcxcxcxc[f1]dsdsd";
Regex reg = new Regex(@"(?<=\[)[^\[\]]+(?=\])");
MatchCollection mc = reg.Matches(str);
foreach(Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*-----输出-----
12
zxt
@5
f1
*/例子的前后字符[]太特殊了 ,看花眼了,我想取= 和,之间要怎么写啊?
主要是这个正则例子太特别,没办法自己研究研究其他正则大大进来的话也请解答下
Regex reg = new Regex(@"(?<=\[)[^\[\]]+(?=\])");
MatchCollection mc = reg.Matches(str);
foreach(Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*-----输出-----
12
zxt
@5
f1
*/例子的前后字符[]太特殊了 ,看花眼了,我想取= 和,之间要怎么写啊?
主要是这个正则例子太特别,没办法自己研究研究其他正则大大进来的话也请解答下
给这个里面的(@"(?<=\[)里面的[换乘=
另一个相同的原理不行么?
string str = "aaa=12, bbbc=zxt, ccvcvcvxcvx=@5,xxcxcxcxc=f1,dsdsd";
Regex reg = new Regex(@"(?<=\=)[^,]+(?=,)");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*-----输出-----
12
zxt
@5
f1
*/
Regex regex = new Regex(@"(?<=\=)[^,]+(?=,)");
MatchCollection mc = regex.Matches(str);
foreach (Match m in mc)
{
Console.WriteLine(m);
}
这个正则排除的只是中括号,所以和空格无关,如果出错,可能是你的字符串中含有中括号,如果不是,那需要你把字符串贴出来看下原因=在正则中不是元字符,不需转义
//如果逗号只是半角的
Regex reg = new Regex(@"(?<==)[^=,]+(?=,)");
//如果逗号可能有全角的
Regex reg = new Regex(@"(?<==)[^=,]+(?=[,,])");