我有以下文字:
/*
a bunch of lines of text here
*/
#ifndef header
#define header
#include "include1.h"
#include "include2.h"
#ifndef SOME_TYPEDEF
#define SOME_TYPEDEF
...etc
我正在尝试使用正则表达式来匹配include语句之后的所有内容,并使用以下代码行:
Regex.Match(myText, @"(?<=(#include "".+""\r\n)+).*").ToString();
当我运行此代码时,匹配的结果是:
#include "include2.h"
我可以抛弃后视并使用以下正则表达式:
Regex.Match(myText, @"(#include "".+""\r\n)+").ToString();
当我这样做时,我按预期匹配两个include语句,但由于某些原因,当我添加lookbehind时它只匹配一个。我可以使用以下代码修复它:
Regex.Match(simulinkTypes, @"(?<=(#include "".+""\r\n){2,}).*").ToString();
这个正则表达式给了我两个include语句之后的第一行,这就是我需要的。但是,我不能假设总会有至少两个包含语句。为什么不+工作?