读书人

能正则表达式的进

发布时间: 2012-12-24 10:43:13 作者: rapoo

会正则表达式的进
麻烦各位给我写个正则表达式:


835589790----宁波龙腾印务
826845666----罗兰印务
8265760----i海天印务
985236962|远涛印务
983131667|尚品印务
981952134|远华印务
1145239696|合肥新航道英语学校
1762722484|聚才厨师学校
48774356|绿新职业学校
1184537431|学开锁学校--
1606791616|学开锁学校
1732479202|学开锁学校\
1903653975|学开锁学校
1602911107|学开锁学校,
1652194001|学开锁学校。
1563434391|学开锁学校/
85662816|聚才厨师学校一校
1137119865|挖掘机学校
1315034306|挖掘机学校
1178452068|挖掘机学校
506393158|中誉艺术学校


这些数据前面是QQ,后面是昵称,数据都在txt里面存着,我现在已经读入程序,


读入之后是这样的:


1145239696|合肥新航道英语学校\r\n1762722484|聚才厨师学校\r\n48774356|绿新职业学校\r\n1184537431|学开锁学校--\r\n1606791616|学开锁学校\r\n1732479202|学开锁学校\\\r\n1903653975|学开锁学校\r\n1602911107|学开锁学校,\r\n1652194001|学开锁学校。\r\n1563434391|学开锁学校/




\r\n 是换行。。。


我现在需要一个正则,能从我读入的数据中取出 QQ号 和对应的昵称。。

QQ号 和 昵称之间有的是用 | 隔开,有的用 ----隔开。。。


朋友给我写了一个,我在测试工具里可以用,到了 编译器里就不可以了。。。



能正则表达式的进



能正则表达式的进




实在搞不懂怎么回事。。



各位同仁麻烦给我写个,或者直接加我QQ:905607625


告诉我原因。。。
[解决办法]

string tempStr = @"1145239696
[解决办法]
合肥新航道英语学校\r\n1762722484
[解决办法]
聚才厨师学校\r\n48774356
[解决办法]
绿新职业学校\r\n1184537431
[解决办法]
学开锁学校--\r\n1606791616
[解决办法]
学开锁学校\r\n1732479202
[解决办法]
学开锁学校\\\r\n1903653975
[解决办法]
学开锁学校\r\n1602911107
[解决办法]
学开锁学校,\r\n1652194001
[解决办法]
学开锁学校。\r\n1563434391
[解决办法]
学开锁学校/

";
var list = Regex.Matches(tempStr, @"(?i)(\d+?)\W+?(\w+?)(?=\W)").Cast<Match>().Select(a => new {
QQ=a.Groups[1].Value,
Name=a.Groups[2].Value
});
/*
+[0]{ QQ = "1145239696", Name = "合肥新航道英语学校" }<Anonymous Type>
+[1]{ QQ = "1762722484", Name = "聚才厨师学校" }<Anonymous Type>
+[2]{ QQ = "48774356", Name = "绿新职业学校" }<Anonymous Type>


+[3]{ QQ = "1184537431", Name = "学开锁学校" }<Anonymous Type>
+[4]{ QQ = "1606791616", Name = "学开锁学校" }<Anonymous Type>
+[5]{ QQ = "1732479202", Name = "学开锁学校" }<Anonymous Type>
+[6]{ QQ = "1903653975", Name = "学开锁学校" }<Anonymous Type>
+[7]{ QQ = "1602911107", Name = "学开锁学校" }<Anonymous Type>
+[8]{ QQ = "1652194001", Name = "学开锁学校" }<Anonymous Type>
+[9]{ QQ = "1563434391", Name = "学开锁学校" }<Anonymous Type>


*/


[解决办法]

string txt = File.ReadAllText("C:\\bb.txt",Encoding.GetEncoding("GB2312"));
Regex regex = new Regex(@"(?<QQ>\d+)(?:(-+
[解决办法]
\
[解决办法]
))(?<name>\S*)");

MatchCollection mcs = regex.Matches(txt);

foreach (Match item in mcs)
Console.WriteLine("QQ:"+item.Groups["QQ"].Value+" "+"name:"+item.Groups["name"].Value);

Console.Read();


[解决办法]
引用:
引用:(\d{6,})(?:\
[解决办法]
-+)(\w+)



573894781----6#新发印务
这一条用这个正则不行。。

下面的昵称 学开锁学校后面还有东西。。

1602911107
[解决办法]
学开锁学校,
1652194001
[解决办法]
学开锁学校。
1563434391
[解决办法]
学开锁学校/



能改下正则不。。。
……



(\d{6,})(?:\
[解决办法]
-+)([^-
------解决方案--------------------


]+)

读书人网 >C#

热点推荐