2014-09-23 29 views
0

我有如下的正則表達式。連字符( - )來自使用常規表達式的不匹配字符串

$content = preg_replace_callback('/\{\%\s*block_(\w*)\s*\%\}/', function ($block){ 
     $block_file = $block[1].'.block'; 
} 

{% block_contact_us %}來臨都找到了比賽......但是當{% block_contact-us %}來臨都失敗..

+0

'(\ w +)'=>'([\ w - ] +)' – georg 2014-09-23 11:19:00

+0

@georg really ..? – 2014-09-23 11:22:27

回答

0

就在一個字符類中添加-

$content = preg_replace_callback('/\{\%\s*block_([\w-]*)\s*\%\}/', function ($block){ 
//          here __^^^^^ 
     $block_file = $block[1].'.block'; 
} 

[\w-]匹配字母數字,下劃線和短跑。

+0

是的,這是一個快速和懶惰的答案 - 但他們是否真的想匹配'{block _---------------}'? – georg 2014-09-23 11:20:26

+0

@georg:我不知道。只有OP可以回答。 – Toto 2014-09-23 11:21:41

相關問題