我在TextBox1.text中输入:
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我太菜了
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我太菜了
为什么不分开输入呢
string sol = string.Empty;
MatchCollection m = Regex.Matches(textBox2.Text, @"(?<=\s*\d+\.)[\u4e00-\u9fa5]+(?=\s)|(?<=\sCANPEK\s+RR)\d+(?=\s)", RegexOptions.IgnoreCase); int Count = Convert.ToInt32(m[m.Count - 1].Value); //此为CANPEK RR后面的数
for (int i = 0; i <Convert.ToInt32(m[m.Count-1].Value); i++)
{
sol += m[i].Value + Environment.NewLine;
}
this.textBox1.Text = sol; //此为所有的人名
sol = string.Empty;
MatchCollection m2 = Regex.Matches(textBox2.Text, @"(?<=\s\d+\..+NI)\d+(?=/P(?<No>\d+))", RegexOptions.IgnoreCase);
for (int i = 0; i < m2.Count; i++)
{
if (Convert.ToInt32(m2[i].Groups["No"].Value) <= Count)
sol += m2[i].Groups["No"].Value + " " + m2[i].Value + Environment.NewLine;
}
this.textBox1.Text += sol; //此为所有的序号+证件号