考虑以下代码:
TFrmLeistung = class(TFrmStandard)
PanelBottom: TsuiImagePanel;
lbDatum: TLabel;
lbLeistungTyp: TLabel;
**TVirtualKosten = record
KostenLeistung,BetragEH,Pauschal: Currency;
ProzentES: Integer;
end;**
FMengeAutoSet: Boolean;
FMengeAutoSetVal: Integer;
FLstTxtPopupFunctions: TJX2LstTxtPopupFunctions;
FAfterShowCalled: Boolean;
FBAKuerzel : TJX2BAKuerzel;
FPseudoLst : TJX2Leistung
end;
是否可以选择整个代码没有代码块之间的双星号与正则表达式?
基本上,我试图提取不包括记录类型的类声明。也有可能是这样的代码的多重接收,我想在最终结果中逃避所有这些。
你可以使用'向前看'和'向后看'。
这个RegEx应该工作:/(?<=^end; xa)(.*)|(^.*)(?=^.* record)/gsm
但是- look-behind必须是一个固定的宽度,所以确定记录定义的结束是很棘手的。
它是这样工作的:
第一个选项捕获以end;
开头并以"标准"n
结尾的行后面的所有文本。(注意,这可能不是您的平台的标准!)
第二个选项捕获后跟以record
结尾的行的所有文本。
由于向后看必须是固定宽度,因此结果将对代码的格式很敏感。
您可以在regex101的代码中对此进行测试https://regex101.com/