2016-04-04 131 views
2

我有這樣一行文字:匹配空白

This is {{some.  test}} to see  if I can remove spaces 

我想這行文字使用正則表達式:

This is {{some.test}} to see  if I can remove spaces 

我試圖this question進入正確的方向,雖然我可以匹配所有多個空格([ \t]+[ ])+我不知道如何匹配只有在{{}}之間。

如何修改我當前的正則表達式?

+0

所以,你需要的正則表達式應該在Vim的合作 –

+0

沒有,PHP我只是碰到了這個問題,同時來尋找解決的辦法我用它來檢查,如果正則表達式的工作原理:HTTP:// regexr。 COM / – Albert

回答

2

要刪除所有的空格內{{...}}你可以匹配{{...}}子與{{.*?}}正則表達式,並與preg_replace_callback替換那些比賽裏的空格:

$re = '~{{.*?}}~s'; 
$str = "This is {{some.  test}} to see  if I can remove spaces"; 
echo preg_replace_callback($re, function($m) { 
    return str_replace(" ", "", $m[0]); 
}, $str); 

IDEONE demo

s修改將使.匹配換行符,太。如果你不需要這個(並希望只匹配{{...}}子是在同一行,刪除s

要更換各種空白,使用preg_replace回調內側\s+模式匹配1+空格字符:

?。
preg_replace('~\s+~', '', $m[0]) 
相關問題