string[]s=txtbox.text.split(","); Regex r = new Regex("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); foreach(string a in s) { if(r.IsMatch(a)) { // } } 这样??
明白你意思了。 Regex reg = new Regex(@"(?:[^;]+;?){1,20}"); MatchCollection mc = reg.Matches(yourcode); foreach(Match m in mc) { //m.Value就是你要的,最多20个,如果不足20个,至少1个的邮箱地址。 }
一次把所有的读取来 放到一个 list 中
public Match InitializeGetMail(string email_list_string, int count) { return Regex.Match(email_list_string, "([^;]+;?){1," + count.ToString() + "}"); }Match m = Match.Empty; public void Call() { if (m == Match.Empty) { m = InitializeGetMail("地址列表;地址列表2", 20); } else { m = m.NextMatch(); } //m.Value就是你要的 //记得每次重新一个列表的时候要还原:m = Match.Empty; }
Regex r = new Regex("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
foreach(string a in s)
{
if(r.IsMatch(a))
{
//
}
}
这样??
但是你是存在textbox里的数据应该是页面上的.你是提交到后台再取? 既然所有数据都可以提交到后台. 直接后台返回的时候删除已取的值就可以了.
有一个list《sting》 数组
每次从textbox中取出来2个把 先弄少点 譬如 邮箱1,邮箱2存在list中
第二次娶 邮箱3,邮箱4 放在list中 就是这种取法 明白我的意思吗
list<string>是.net的. 怎么取过来?提交的方式还是ajax?
分解成一个有序数组,
直接用下标取就是了
String [] a=textbox.split(",");for(int i=0;i<a.length/20;i++)
{
setList(i,i+20);//创建取数方法,传入取数开始结束下标
}
我想把这个数组每20个20个一组放到一个string中然后用list贮存 难道就这么难吗?
count==20 再做相应的处理。
绝对行。
不知道你们到底有没有明白我的需要是什么
用Split它会把 所有的邮箱都分开
可是我不能这么做
我要把 每20个邮箱 20个邮箱一分开
不是一个一个都分开
因为我需要的参数的形式是 邮箱1,邮箱1,邮箱1,邮箱1,邮箱1,邮箱1 这种形式
而不是 邮箱1
难道我一个一个把他们分开 然后又20个20个 把他们都加起来??
那不 中间多了一个步奏???
我的问题应该说的很明白把 ???
Regex reg = new Regex(@"(?:[^;]+;?){1,20}");
MatchCollection mc = reg.Matches(yourcode);
foreach(Match m in mc)
{
//m.Value就是你要的,最多20个,如果不足20个,至少1个的邮箱地址。
}
{
return Regex.Match(email_list_string, "([^;]+;?){1," + count.ToString() + "}");
}Match m = Match.Empty;
public void Call()
{
if (m == Match.Empty)
{
m = InitializeGetMail("地址列表;地址列表2", 20);
}
else
{
m = m.NextMatch();
}
//m.Value就是你要的 //记得每次重新一个列表的时候要还原:m = Match.Empty;
}