我有一个正则表达式:
/constructor.*?'nbegin'n(^(?:(?!inherited).)*$'n)+?end/igm;
(它搜索没有继承关键字的德尔菲构造函数)。当我在这里使用它时:http://www.regextester.com/它工作得很好
例如,您可以在字符串上对其进行测试
constructor TAPISession.Create;
begin
LastActivity:=Now;
CS:= TCriticalSection.Create;
APIObj:= TAdvancedServerObject.Create;
CachedDomainsList:=TCachedDomainsList.Create;
CachedAccountsList:= TCachedAccountsList.Create;
end;
但是如果我在 php ( preg_match_all ) 中使用它,它不起作用
preg_match_all('/constructor.*?'nbegin'n(^(?:(?!inherited).)*$'n)+?end;/im',$string,$matches);
任何帮助将不胜感激
谢谢Marc B,所以答案很简单,只需检查回车
preg_match_all('/constructor.*?'r?'nbegin'r?'n(^(?:(?!inherited).)*$'r?'n)+?end;/im',$string,$matches);