正则表达式循环分组示例(转)

三角猫 DeltaCat的部落格看到一篇关于循环分组示例的文章,特转载于此:

今天,有个网友咨询一个正则表达式的使用,问题描述如下:

"@Beijing|北京|101@Shanghai|上海|102@Tianjin|天 津|103@Chongqing|重庆|104@Haerbin|哈尔滨|105@Dalian|大连|106"
分解成 “Beijing 北京 101“,"Shanghai 上海 102” 的单独项。

这个正则的使用,是循环分组的一个典型应用。

C#的写法:

string str = @"@Beijing|北京|101@Shanghai|上海|102@Tianjin|天津|103@Chongqing|重庆|104@Haerbin|哈尔滨|105@Dalian|大连|106";
Regex reg = new Regex(@"@([^|]*)|([^|]*)|([^@]*)");

foreach (Match m in reg.Matches(str))
{
Console.WriteLine("{0} {1} {2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value);
}


发表评论

(必填)

(必填)

(以便回访)