亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

可以加速 PHP 正則表達式

可以加速 PHP 正則表達式

PHP
慕運維8079593 2023-05-12 14:33:17
我試圖編寫一個快速的正則表達式,但是當我測試它時,PHP (preg_replace_callback) 將有大量的步驟來獲得結果,我認為這不是一個好的性能 - 必須更快。我的正則表達式代碼:\{if\s{1}(.+?)\}\n(((?R)|.*?)+)\{\/if\}應該解析的代碼(遞歸):{if $name == 'Tree'}    Hey, this is a Tree!{/if}{if $name == 'Example'}    {if $number == '1'}        Hey, this is an Example with the number 1    {/if}{/if}您可以在此處測試 regex101 上的示例。有沒有辦法加快我的正則表達式或者我必須接受那個速度?
查看完整描述

1 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

你可以使用

(?s)\{if\s(.+?)}\R((?>(?!\{\/?if[}\s]).|(?R))*?)\{\/if}

請參閱正則表達式演示

細節

  • \{if\s-{if和一個空格

  • (.+?)- 第 1 組:任何一個或多個字符,盡可能少

  • }- 一個}字符

  • \R- 任何換行序列

  • ((?>(?!\{\/?if[}\s]).|(?R))*?){/if- 第 2 組:除開始 a或+whitespace 字符序列的字符以外的任何字符{if,或整個模式遞歸,0 次或多次,但盡可能少

  • \{\/if}-{/if}文本


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號