string pattern = @"【省份】(?<Province>.+?)(\\0\\0\\0|【地区】)";Regex r = new Regex( pattern );
Match m = r.Match( str );while ( m.Success )
{
Console.WriteLine( m.Groups[ "Province" ].Value );
}
//不太明白\0\0什么意思,字符串结尾还是字符表现的形式?
Match m = r.Match( str );while ( m.Success )
{
Console.WriteLine( m.Groups[ "Province" ].Value );
}
//不太明白\0\0什么意思,字符串结尾还是字符表现的形式?
TO OneDotRed:
上面的其实【地区】还可以是其它的如:【这里是任何字符】\0\0等为字符串的表现形式
@"【省份】([^省]+省)"
string[] slist = {"【省份】四川省\0\0\0","【省份】四川省 【地区】","【省份】四川【章名】省 【地区】"}; Regex re = new Regex(@"【省份】([^省]+省)");
foreach (string s in slist)
{
Match m = re.Match(s);
if (m.Success)
Console.WriteLine("{0} ==> {1}", s, m.Groups[1].Value);
}
(【省份】(?<provider>[^省]+【.+】省) 【地区】)|(【省份】(?<provider>[^省]+省) 【地区】)|(【省份】(?<provider>[^省]+\0\0\0))