出什么问题了 :
/(?<={).+(?=public)/s
Run Code Online (Sandbox Code Playgroud)
全文
class WeightConvertor {
private:
double gram;
double Kilogram;
double Tonnes;
void SetGram(double);
void SetKiloGram(double);
void SetTonnes(double);
matching end
public:
WeightConvertor();
WeightConvertor(double, double, double);
~WeightConvertor();
void SetWeight(double, double, double);
void GetWeight(double&, double& ,double&);
void PrintWeight();
double TotalWeightInGram();
public:
};
Run Code Online (Sandbox Code Playgroud)
我怎么能只匹配这个文字:
private:
double gram;
double Kilogram;
double Tonnes;
void SetGram(double);
void SetKiloGram(double);
void SetTonnes(double);
matching end
Run Code Online (Sandbox Code Playgroud)
Kob*_*obi 12
你想要一个懒惰的比赛:
/(?<={).+?(?=public)/s
Run Code Online (Sandbox Code Playgroud)
另见:*之间有什么区别?和.*正则表达式?
(我也回答,似乎)
您需要打开“点匹配换行符”开关,并且进行非贪婪 ( .*?) 匹配:
(?s)(?<={).+?(?=public)
Run Code Online (Sandbox Code Playgroud)
引用正则表达式圣经,(?s)开关意味着:
为正则表达式的其余部分打开“点匹配换行符”。
请注意,正则表达式周围的斜杠与正则表达式无关 - 这是一个语言问题(perl,javascript等)并且与实际问题无关