如何将 PCRE 正则表达式转换为 PHP


How to convert PCRE regex to PHP?

我有一个正则表达式:

/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);