Javascript 如何将PCRE正则表达式转换为PHP?
我有一个正则表达式:Javascript 如何将PCRE正则表达式转换为PHP?,javascript,php,regex,pcre,Javascript,Php,Regex,Pcre,我有一个正则表达式: /constructor.*?\nbegin\n(^(?:(?!inherited).)*$\n)+?end/igm; (它搜索没有继承关键字的delphi构造函数)。当我在这里使用它时:它工作得很好 例如,您可以在字符串上测试它 constructor TAPISession.Create; begin LastActivity:=Now; CS:= TCriticalSection.Create; APIObj:= TAdvancedServerObje
/constructor.*?\nbegin\n(^(?:(?!inherited).)*$\n)+?end/igm;
(它搜索没有继承关键字的delphi构造函数)。当我在这里使用它时:它工作得很好
例如,您可以在字符串上测试它
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);
你确定那里只有
\n
换行符吗?也许是\r\n
吧?老兄,我太蠢了:多谢了,救了我第二个小时:你敢在第一组抓捕之后吗?通过$matches[1]
访问它。