我有多行字符串,其中包含以下两行:Failed to project E:\TempWork\GDB\testLine.shp. Failed to execute.
Projected E:\TempWork\GDB\testpoint.shp to E:\TempWork\GDB\ResultData\testpoint.shp successfully其中路径(E:\TempWork\GDB\testLine.shp)是可以变的,但Failed to project 这些词语是不变的。
我想通过正则表达式把这两行提取出来,该如何做?

解决方案 »

  1.   

    (?m:^)Failed to project\b.+[\r\n]+.+
      

  2.   

                string str = @"Failed to project E:\TempWork\GDB\testLine.shp. Failed to execute.
                    Projected E:\TempWork\GDB\testpoint.shp to E:\TempWork\GDB\ResultData\testpoint.shp successfully";
                Regex reg = new Regex(@"(?is)(?<=Failed to project|Projected)((?!Failed to execute|successfully).)*");
                foreach (Match m in reg.Matches(str))
                {
                    Response.Write(m.Value + "<br/>");
                }
    /*
    E:\TempWork\GDB\testLine.shp. 
    E:\TempWork\GDB\testpoint.shp to E:\TempWork\GDB\ResultData\testpoint.shp 
    */
      

  3.   

    Failed to project (\S*)\. Failed to execute.\sProjected (\S*) to (\S*) successfully