如如用一个数字来提取字号后面的字符到空格呢?如:
HK5中的5
怎么样得到
1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD
中的
DDCF
DDER
DDCV
DEDD
用活动的TextBox1.Text到TextBox5.Text来显示
格式不变数字是1-9之间变化
帮帮忙谢谢!!!
HK5中的5
怎么样得到
1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD
中的
DDCF
DDER
DDCV
DEDD
用活动的TextBox1.Text到TextBox5.Text来显示
格式不变数字是1-9之间变化
帮帮忙谢谢!!!
string[] arrstr=str.Split('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
foreach (string s in arrstr)
{
Console.WriteLine(s.Trim('.'));
}
string[] a = str.spilt(" ");
string b = a[0]; // b 的值为 1.DDCF
string c = b.spilt(".")[1];这时c的值为DDCF粗略的讲一下,剩下的LZ很容易就可以解决了..
MatchCollection matchs = regex.Matches("1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD");
foreach (Match match in matchs)
{
Response.Write(match.Groups[2].Value);//<------ match.Groups[2].Value 就是你想要的值
Response.Write("<Br>");
}输出结果是:
DDCF
DDER
DDCV
DERD
DEDD
string[] s = str.Split(new char[] { ' ', '.','1','2','3','4','5','6','7','8','9' }); foreach (string ss in s)
{
Console.WriteLine(ss);
}
HK5
1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD
6.DFKJNJBU
7.DFPTNF DFVBGG
想得到
DDCF
DDER
DDCV
DEDD
HK后面要是3就是得到1-3,后的数据至空格
DDCF
DDER
DDCV
DERD
DEDD
要是3的话
DDCF
DDER
DDCV
但是HK后的数是活动的.序号一般都在10以上要怎么样才能用HK后的来得到相对应的序号后的数啊.......
string src = "HK5";
string dst = @"1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD
6.DFKJNJBU
7.DFPTNF DFVBGG";
int num = int.Parse(src.Substring(src.IndexOf("HK") + 2, 1));
string[] arr = dst.Split(' ');
for (int i = 0; i < num; i++)
{
richTextBox2.Text += arr[i].Substring(2) + "\n";
}
这个正则有两个分组。
所以最有Match.Groups集合数肯定是3.
Groups[0]表示是匹配本身。
从索引1开始时从外到内的分组匹配,所以第1个分组就是([1-9]\\.([A-Z]{4})\\s{0,1}),第二个分组就是([A-Z]{4})
MatchCollection matchs = regex.Matches("1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD");
foreach (Match match in matchs)
{
Response.Write(match.Groups[2].Value);// <------ match.Groups[2].Value 就是你想要的值
Response.Write(" <Br>");
}
str = str.Replace(" ","");
string[] arrstr=str.Split('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
foreach (string s in arrstr)
{
Console.WriteLine(s.Trim('.'));
}
MatchCollection m = Regex.Matches(textBox2.Text, @"(?<=HK)\d+(?=\s)|(?<=\s*\d+\.)[^\s]+(?=\s)", RegexOptions.IgnoreCase); for (int i = 1; i <=Convert.ToInt32(m[0].Value); i++)
{
sol += m[i].Value + Environment.NewLine;
}
this.textBox1.Text = sol;说明书:
1.把textBox2.Text替换成你的输入text
2.m[0].Value里是HK后面的个数
3.m[1].Value~m[n].Value分别对应第1到第n组字符串
4.要是HK过大会异常,自己看情况处理吧
1.DDCF 2.DDER 3.DDCV 4.DERD 5.DEDD
6.DFKJNJBU
7.DFPTNF DFVBGG "以上,统统输入到一个text里的吧?要是的话就用我的方法
string[] arrstr=str.Split('1', '2', '3', '4', '5', '6', '7', '8', '9', '0','.');
foreach (string s in arrstr)
{
Console.WriteLine(s);
}
1.何月岚 2.黄大庆 3.刘雅琴 4.王长春 5.杨理智 6.姚华
7.赵丽娟 8.钟彬 MQSXG
9. CZ345 R MO02JUN CANPEK RR8 1000 1235 E
10.CAN/T CAN/T 020-87774512/CAN KONG YUAN CENTER/LIN HUAI JING ABCDEFG
11.02086300366/CANXIN
12.T
13.SSR FOID CZ HK1 NI360426198205040422/P7
14.SSR FOID CZ HK1 NI420322198212165149/P8
15.SSR FOID CZ HK1 NI433130198108084414/P6
16.SSR FOID CZ HK1 NI452324198005020334/P5
17.SSR FOID CZ HK1 NI42900181091876/P4
18.SSR FOID CZ HK1 NI430421198104240026/P3
19.SSR FOID CZ HK1 NI42220119781006011X/P2
20.SSR FOID CZ HK1 NI362131791005094/P1
.CS中是这样处理
用CANPEK RR8 中的8来提取:1~8后面的中文和NI/P1~NI/P8中间的证件用下面的应该再怎么改
string sol = string.Empty;
MatchCollection m = Regex.Matches(textBox2.Text, @"(? <=HK)\d+(?=\s) ¦(? <=\s*\d+\.)[^\s]+(?=\s)", RegexOptions.IgnoreCase); for (int i = 1; i <=Convert.ToInt32(m[0].Value); i++)
{
sol += m[i].Value + Environment.NewLine;
}
this.textBox1.Text = sol;
谢谢!!另谢谢HimeTale 明白了那么一点点正则表达不过还得再次请教.5555555555我太菜了