日期:2014-05-17  浏览次数:20970 次

在一堆文字内找出符合条件的多个字符,想到头痛了
           string words = "aaaaa主题=中国YES,BBBBB主题=日本YES,主题=美国YES,CCCCCCC"

          想用SUBSTRING通过字符首:主题,和字符尾:YES,搜出中国,日本,美国。

           代码这么写呢,大侠们。我只能搜到中国,日本,美国不会写了。

------解决方案--------------------

            System.IO.StreamReader reader1 = new System.IO.StreamReader("e:\\1.txt",Encoding.Default);
            string str = @"aaaaa主题=中国YES,BBBBB主题=日本YES,主题=美国YES,CCCCCCC";
            string strmatch = @"(?is)(?<=主题=)[^a-z]+(?=YES)";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strmatch);
egularExpressions.MatchCollection mc = reg.Matches(str);
            foreach (System.Text.RegularExpressions.Match mm in mc)
            {
                MessageBox.Show(mm.Value);
            }

------解决方案--------------------
LZ这是编的爬虫程序吗,用正则匹配吧,SUBSTRING之类字符串函数搞不定地
------解决方案--------------------
正则表达式才是王道
------解决方案--------------------
建议正则这么写:

@"(?s)(?<=主题=)((?!YES).)+(?=YES)";