2008年奥运会在哪里举行? (知识点:奥运会-难易指数:1)选择题 
A.中国(正确) B.美国 C.英国 2008年奥运会将在什么时间举行?(知识点:奥运会举办时间-难易指数-1)填空题 
8月8日 测试多选题?(知识点:测试-难易指数:1)A.11111(正确) B.22222(正确) C.333333上面的东西分割成如下形式:考题1:2008年奥运会在哪里举行? 
知识点:奥运会
难易指数:1
答案:A→中国┆True〓B→美国┆False〓C→英国┆False考题2:2008年奥运会将在什么时间举行?(
知识点:奥运会举办时间
难易指数:1
答案:8月8日考题3:测试多选题?(
知识点:测试
难易指数:1
答案:A→11111┆True〓B→22222┆True〓C→333333┆False
A→中国┆True〓B→美国┆False〓C→英国┆False
True就是答案正确的意思,false相反上面描述的是用正则表达式做吗?要是的话应该怎么写啊。高手帮个小忙

解决方案 »

  1.   

    1.2008年奥运会在哪里举行? (知识点:奥运会-难易指数:1)选择题  
    A.中国(正确) B.美国 C.英国  2.2008年奥运会将在什么时间举行?(知识点:奥运会举办时间-难易指数-1)填空题  
    8月8日  3.测试多选题?(知识点:测试-难易指数:1) 
    A.11111(正确) B.22222(正确) C.333333
    以这种格式OK么?
      

  2.   


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Text.RegularExpressions;
    namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
                string objText = @"1.2008年奥运会在哪里举行? (知识点:奥运会-难易指数:1)选择题   
    A.中国(正确) B.美国 C.英国   2.2008年奥运会将在什么时间举行?(知识点:奥运会举办时间-难易指数-1)填空题   
    8月8日   3.测试多选题?(知识点:测试-难易指数:1)  
    A.11111(正确) B.22222(正确) C.333333 ";
                string[] questions = new Regex(@"\r?\n\r?\n").Split(objText);//空行分割            string pattern = @"^\s*(?<number>\d+)\.(?<question>.+?)\(知识点.(?<point>.+?).难易指数.(?<level>\d+)\)(?<type>\w+题)?\s*\r?\n(?<answer>.+(?:\s*\r?\n|\s*$))";
                
                Regex regA = new Regex(pattern);
                Regex regB = new Regex(@" (?=[A-Z]\.)");
                Regex regC = new Regex(@"(?<=^[^.]+)\.");            foreach (string one in questions) {
                    Match m=regA.Match(one);
                    if (m.Success) {
                        Console.WriteLine("题目{0}:{1}\n知识点:{2}\n难易指数:{3}", m.Groups["number"],m.Groups["question"], m.Groups["point"], m.Groups["level"]);
                        if (m.Groups["type"].Success && m.Groups["type"].Value=="填空题")
                        {
                            Console.WriteLine("答案:"+m.Groups["answer"]+"\n\n");
                        }
                        else {
                            string[] choices = regB.Split(m.Groups["answer"].Value);
                            string result="";
                            for (var i = 0; i < choices.Length; i++) {
                                string tmp = regC.Replace(choices[i].Trim(), "→");
                                if (tmp.IndexOf("(正确)") >= 0)
                                {
                                    tmp = tmp.Replace("(正确)", "|True");
                                }
                                else {
                                    tmp += "|False";
                                }
                                result += tmp;
                                if ( i < choices.Length - 1) result += "〓";
                            }
                            Console.Write("答案:{0}\n\n", result);
                        }
                    }
                }
            }
        }
    }题目1:2008年奥运会在哪里举行?
    知识点:奥运会
    难易指数:1
    答案:A→中国|True〓B→美国|False〓C→英国|False题目2:2008年奥运会将在什么时间举行?
    知识点:奥运会举办时间
    难易指数:1
    答案:8月8日
    题目3:测试多选题?
    知识点:测试
    难易指数:1
    答案:A→11111|True〓B→22222|True〓C→333333|False请按任意键继续. . .