无法创建.NET Regex模式以捕获多行文本

时间:2009-06-26 01:02:48

标签: .net regex

示例文本如下 - 它是正在解析的更大文档的一部分(每行在结束之前都有尾随空格):

                          Procedure Information                      
Primary Procedure:                                                       
LAPAROSCOPIC PARTIAL LEFT NEPHRECTOMY /ROBOTIC WITH                      
INTRAOPERATIVE ULTRASOUND                                                
Procedure Start: 5/4/2009   9:01:00AM                                    
Procedure Stop:  5/4/2009   3:29:00PM                                    

我想从这个字符串中提取“主要程序”数据,在这种情况下是“腹腔镜下部分左侧肾脏切除术/机器人超声检查”。

以下表达式标识主要过程位置并设法拉出值的第一行但不是两行(使用多行标记):

^Primary Procedure:\s*([\w\S ]*\w)\s*$

我无法弄清楚一个表达式来获得所需值的两行。该值很可能总是1或2行。而且我们也可能依赖于下一行开头的“Procedure Start:”字符串的存在。

1 个答案:

答案 0 :(得分:0)

new Regex(@"Primary Procedure:\s*(.*)\s*Procedure Start", 
  RegexOptions.Singleline).Match(str).Groups[1]