string[] result= ....
foreach(string s in result){
Console.Writeline(s);
}
我希望result这个数组包含所有符合情况的:"id"加上一个数字,这个数字是一位或者两位,而且末位不超过4,如下的例子
id1
id2
id3
id4
id11
id12
id13
id14
一直到id94
可以通过RegEx的相关功能做到吗?
谢谢!
9 个解决方案
#1
目测应该可以用LINQ做
非要正则,你需要先定义个LIST,循环匹配,把能匹配上的加入LIST,然后再转成数组
非要正则,你需要先定义个LIST,循环匹配,把能匹配上的加入LIST,然后再转成数组
#2
string[] result = Enumerable.Range(1, 14).Select(i => "id" + i).ToArray();
#3
这个的输出是id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, id12, id13, id14
不是我想要的。
我想要的是id1, id2, id3, id4, id11, id12, id13, id14, id21, id22, id23, id24, id31......id94
这样的的一个数组
怎么写这个表达式呢?
#4
如果你要的仅仅是固定的数组,而不是从结果集中匹配出你数组中包含的部分,双循环就可以搞定了啊
string[] result=new string[40];
for(int i=0;i<9;i++)
{
for(int j=0;j<4;j++)
{
string id="id";
if(i>0)
{
id+=i.tostring();
}
id+=j.tostring();
result[i*4+j]=id;
}
}
string[] result=new string[40];
for(int i=0;i<9;i++)
{
for(int j=0;j<4;j++)
{
string id="id";
if(i>0)
{
id+=i.tostring();
}
id+=j.tostring();
result[i*4+j]=id;
}
}
#5
string[] result = Enumerable.Range(0, 10)
.SelectMany(i => Enumerable.Range(1, 4).Select(j => "id" + (i * 10 + j)))
.ToArray();
#6
var list=Enumerable.Range(1,40).Select((x,i)=>"id"+((i/4)*10+(i%4)+1));
结果:
5IEnumerable<String> (40 items)
id1
id2
id3
id4
id11
id12
id13
id14
id21
id22
id23
id24
id31
id32
id33
id34
id41
id42
id43
id44
id51
id52
id53
id54
id61
id62
id63
id64
id71
id72
id73
id74
id81
id82
id83
id84
id91
id92
id93
id94
#7
正则是用来作匹配用的,并不是用来生成数据的
#8
如果你是要匹配的话,可以这样写
id[1-9]\d{0,1}
#9
LINQ牛逼!
#1
目测应该可以用LINQ做
非要正则,你需要先定义个LIST,循环匹配,把能匹配上的加入LIST,然后再转成数组
非要正则,你需要先定义个LIST,循环匹配,把能匹配上的加入LIST,然后再转成数组
#2
string[] result = Enumerable.Range(1, 14).Select(i => "id" + i).ToArray();
#3
这个的输出是id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, id12, id13, id14
不是我想要的。
我想要的是id1, id2, id3, id4, id11, id12, id13, id14, id21, id22, id23, id24, id31......id94
这样的的一个数组
怎么写这个表达式呢?
#4
如果你要的仅仅是固定的数组,而不是从结果集中匹配出你数组中包含的部分,双循环就可以搞定了啊
string[] result=new string[40];
for(int i=0;i<9;i++)
{
for(int j=0;j<4;j++)
{
string id="id";
if(i>0)
{
id+=i.tostring();
}
id+=j.tostring();
result[i*4+j]=id;
}
}
string[] result=new string[40];
for(int i=0;i<9;i++)
{
for(int j=0;j<4;j++)
{
string id="id";
if(i>0)
{
id+=i.tostring();
}
id+=j.tostring();
result[i*4+j]=id;
}
}
#5
string[] result = Enumerable.Range(0, 10)
.SelectMany(i => Enumerable.Range(1, 4).Select(j => "id" + (i * 10 + j)))
.ToArray();
#6
var list=Enumerable.Range(1,40).Select((x,i)=>"id"+((i/4)*10+(i%4)+1));
结果:
5IEnumerable<String> (40 items)
id1
id2
id3
id4
id11
id12
id13
id14
id21
id22
id23
id24
id31
id32
id33
id34
id41
id42
id43
id44
id51
id52
id53
id54
id61
id62
id63
id64
id71
id72
id73
id74
id81
id82
id83
id84
id91
id92
id93
id94
#7
正则是用来作匹配用的,并不是用来生成数据的
#8
如果你是要匹配的话,可以这样写
id[1-9]\d{0,1}
#9
LINQ牛逼!